Return an instance for a given type.
Construct an instance from a function.