Have consistent type checking.

So lazily built values are also type checked.