Foldable.Semigroup
S : Interface.SEMIGROUP
module FM : sig ... end
module I : sig ... end
val surround_map : delimiter:S.t -> ('a -> S.t) -> 'a F.t -> S.t
val surround : delimiter:S.t -> S.t F.t -> S.t