Allows better encapsulation of members in these modules rather than allowing them to leak into types/values mod.
Accepts generator+context object for generic type checking. Also implements more default trait impl for easier delegation.