sig
  type context = Constraint.tconstraint -> Constraint.tconstraint
  val infer_program :
    MiniTypingEnvironment.environment ->
    MiniAst.program -> MiniTypingEnvironment.environment * MiniInfer.context
  val generate_constraint : MiniAst.program -> Constraint.tconstraint
  val init_env :
    unit -> MiniInfer.context * MiniTypingEnvironment.environment
  val remove_init_context : Constraint.tconstraint -> Constraint.tconstraint
  val generate_constraint_task : Processing.task_name
  val register_tasks : Processing.task_name -> unit
end