sig
  type 'a t
  val bind : 'Xml_wrap.T.t -> ('-> 'Xml_wrap.T.t) -> 'Xml_wrap.T.t
  val return : '-> 'Xml_wrap.T.t
  val fmap : ('-> 'b) -> 'Xml_wrap.T.t -> 'Xml_wrap.T.t
  val fmap2 :
    ('-> '-> 'c) -> 'Xml_wrap.T.t -> 'Xml_wrap.T.t -> 'Xml_wrap.T.t
  val fmap3 :
    ('-> '-> '-> 'd) ->
    'Xml_wrap.T.t -> 'Xml_wrap.T.t -> 'Xml_wrap.T.t -> 'Xml_wrap.T.t
  val fmap4 :
    ('-> '-> '-> '-> 'e) ->
    'Xml_wrap.T.t ->
    'Xml_wrap.T.t -> 'Xml_wrap.T.t -> 'Xml_wrap.T.t -> 'Xml_wrap.T.t
  val fmap5 :
    ('-> '-> '-> '-> '-> 'f) ->
    'Xml_wrap.T.t ->
    'Xml_wrap.T.t ->
    'Xml_wrap.T.t -> 'Xml_wrap.T.t -> 'Xml_wrap.T.t -> 'Xml_wrap.T.t
end