sig
  type t
  type 'a embedding
  val embed : unit -> 'BottomUp.Univ.embedding
  val pack : 'BottomUp.Univ.embedding -> '-> BottomUp.Univ.t
  val unpack : 'BottomUp.Univ.embedding -> BottomUp.Univ.t -> 'a option
  val compatible : 'BottomUp.Univ.embedding -> BottomUp.Univ.t -> bool
end