(module signatures mzscheme (require (lib "unit.ss")) (provide (all-defined)) (define-signature type-printer^ (print-type has-name print-effect)) (define-signature infer^ (unify unify1 fv fv/list unfold)) (define-signature subst^ (subst subst-all)) (define-signature type-equal^ (type-equal? type-compare type<? rename tc-result-equal?)) (define-signature typechecker^ (tc-expr tc-literal type-check check-type tc-exprs tc-expr/t check-expr tc-toplevel-form)) (define-signature tc-if^ (tc/if-onearm tc/if-twoarm)) (define-signature tc-lambda^ (tc/lambda tc/plambda)) (define-signature tc-app^ (tc/apply tc/funapp tc/app)) (define-signature tc-let^ (tc/let-values tc/letrec-values)) )