sig
  type t
  type env =
      (MiniAst.tname -> MiniKindInferencer.t) *
      (MiniAst.tname -> MiniKindInferencer.t -> unit)
  val fresh_kind : unit -> MiniKindInferencer.t
  val infer : MiniKindInferencer.env -> MiniAst.typ -> MiniKindInferencer.t
  val intern_kind :
    MiniKindInferencer.env -> MiniAst.kind -> MiniKindInferencer.t
  val check :
    Positions.position ->
    MiniKindInferencer.env -> MiniAst.typ -> MiniKindInferencer.t -> unit
  val star : MiniKindInferencer.t
end