@define type_defined(type) %(
    @defined(& @cast(0, @type))
%)

@define type_member_defined(type, member) %(
    @defined(& @cast(0, @type) -> @member)
%)

@define module_type_defined(module, type) %(
    @defined(& @cast(0, @type, @module))
%)

@define module_type_member_defined(module, type, member) %(
    @defined(& @cast(0, @type, @module) -> @member)
%)
