compile-time well-formedness checking is removed, except for type inference