object
  method extend : 'env -> Kind.kind -> 'env
  method normalize : 'env -> TypeCore.typ -> TypeCore.typ
  method virtual tyanchoredpermission :
    'env -> TypeCore.typ -> TypeCore.typ -> 'result
  method virtual tyand :
    'env -> TypeCore.mode_constraint -> TypeCore.typ -> 'result
  method virtual tyapp : 'env -> TypeCore.typ -> TypeCore.typ list -> 'result
  method virtual tyarrow : 'env -> TypeCore.typ -> TypeCore.typ -> 'result
  method virtual tybar : 'env -> TypeCore.typ -> TypeCore.typ -> 'result
  method virtual tybound : 'env -> TypeCore.db_index -> 'result
  method virtual tyconcrete : 'env -> TypeCore.branch -> 'result
  method virtual tydynamic : 'env -> 'result
  method virtual tyempty : 'env -> 'result
  method virtual tyopen : 'env -> TypeCore.var -> 'result
  method virtual tyq :
    'env ->
    TypeCore.quantifier ->
    TypeCore.type_binding -> TypeCore.flavor -> TypeCore.typ -> 'result
  method virtual tysingleton : 'env -> TypeCore.typ -> 'result
  method virtual tystar : 'env -> TypeCore.typ -> TypeCore.typ -> 'result
  method virtual tytuple : 'env -> TypeCore.typ list -> 'result
  method virtual tyunknown : 'env -> 'result
  method visit : 'env -> TypeCore.typ -> 'result
end