sig
  val dt_of_term :
    vars:FO.Ty.t Var.t list -> FO.T.t -> (FO.T.t, FO.Ty.t) Model.DT.t
  val problem_kinds :
    ('a, FO.Ty.t) FO.Problem.t -> Model.symbol_kind ID.Map.t
end