There is no instance for arbitrary types by default, but if you
declare an instance without providing the value then one will be
built using the first constructor. defaultValue is used to provide
values for any arguments of the constructor.