sig
  exception Error of string
  exception Polymorphic
  exception EmptyData of ID.t
  module Make :
    functor (T : TermInner.S->
      sig
        type ty = T.t
        type 'a env = ('a, AnalyzeType.Make.ty) Env.t
        type cache
        val create_cache :
          ?default_card:int -> unit -> AnalyzeType.Make.cache
        val cardinality_ty :
          ?cache:AnalyzeType.Make.cache ->
          'AnalyzeType.Make.env -> AnalyzeType.Make.ty -> Cardinality.t
        val cardinality_ty_id :
          ?cache:AnalyzeType.Make.cache ->
          'AnalyzeType.Make.env -> ID.t -> Cardinality.t
        val check_non_zero :
          ?cache:AnalyzeType.Make.cache ->
          'AnalyzeType.Make.env ->
          ('a, AnalyzeType.Make.ty) Statement.t -> unit
        val is_incomplete :
          'AnalyzeType.Make.env -> AnalyzeType.Make.ty -> bool
        val is_abstract :
          'AnalyzeType.Make.env -> AnalyzeType.Make.ty -> bool
      end
end