functor
  (FM : FREE_MONAD) (Fold : sig
                              type 'a t = 'FM.F.t
                              val to_seq : 'a t -> 'a sequence
                            end->
  sig type 'a t = 'FM.t val to_seq : 'a t -> 'a sequence end