sig
module type T =
sig
type 'a t
val return : 'a -> 'a Xml_wrap.T.t
type (-'a, 'b) ft
val fmap : ('a, 'b) Xml_wrap.T.ft -> 'a Xml_wrap.T.t -> 'b Xml_wrap.T.t
type 'a tlist
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) Xml_wrap.T.ft -> 'a Xml_wrap.T.tlist -> 'b Xml_wrap.T.tlist
end
module type NoWrap =
sig
type 'a t = 'a
val return : 'a -> 'a t
type ('a, 'b) ft = 'a -> 'b
val fmap : ('a, 'b) ft -> 'a t -> 'b t
type 'a tlist = 'a list
val nil : unit -> 'a tlist
val singleton : 'a t -> 'a tlist
val cons : 'a t -> 'a tlist -> 'a tlist
val append : 'a tlist -> 'a tlist -> 'a tlist
val map : ('a, 'b) ft -> 'a tlist -> 'b tlist
end
module NoWrap : NoWrap
end