Add support for lazy initializated types

Resolves #331.