sig
  type t
  type r
  val extract : Sig.C.r -> Sig.C.t option
  val embed : Sig.C.t -> Sig.C.r
end