sig
  val eval : Typed_syntax.exp -> Typed_syntax.exp
  module type TYPECHECKER =
    sig
      exception Type_error of string
      val type_check : Typed_syntax.exp -> Typed_syntax.typ
    end
  module Make : functor (TC : TYPECHECKER-> sig  end
end