Use singleton types

This version is almost identical to the previous example, except that Board is declared with the keyword object instead of class, making it a singleton type. Singleton types in Meso work just like class types, but it has exactly one object created when the type is first referenced. The object then lives indefinitely until the program ends. A singleton type's name can be used as a r-value directly, which resolved to the singleton object's reference when used in an expression. As a result, the UTL meso:service.Board represents both the name of the data type and the reference to that singleton object. This is why Board can be passed as an argument to Client's constructor directly.