sig
  type ('a, 'b, 'c, 'd) t = ('a, 'b, 'c, 'd) Env.t0
    constraint 'b = [> 'Env.typ ] constraint 'c = [> 'Env.typdef ]
  val make :
    symbol:'Env.symbol ->
    copy_aext:('-> 'b) ->
    ?bddindex0:int ->
    ?bddsize:int ->
    ?relational:bool ->
    Cudd.Man.vt ->
    '-> ('a, [> 'Env.typ ], [> 'Env.typdef ], 'b) Env.O.t
  val print :
    (Format.formatter -> ([> 'Env.typ ] as 'a) -> unit) ->
    (Format.formatter -> ([> 'Env.typdef ] as 'c) -> unit) ->
    (Format.formatter -> '-> unit) ->
    Format.formatter -> ('b, 'a, 'c, 'd) Env.O.t -> unit
end