sig
  type 'a t
  type 'a tlist
  val return : 'a -> 'a Xml_wrap.T.t
  val fmap : ('a -> 'b) -> 'a Xml_wrap.T.t -> 'b Xml_wrap.T.t
  val nil : unit -> 'a Xml_wrap.T.tlist
  val singleton : 'a Xml_wrap.T.t -> 'a Xml_wrap.T.tlist
  val cons : 'a Xml_wrap.T.t -> 'a Xml_wrap.T.tlist -> 'a Xml_wrap.T.tlist
  val append :
    'a Xml_wrap.T.tlist -> 'a Xml_wrap.T.tlist -> 'a Xml_wrap.T.tlist
  val map : ('a -> 'b) -> 'a Xml_wrap.T.tlist -> 'b Xml_wrap.T.tlist
end