sig
module type S =
sig
type t
val append : Semigroup.S.t -> Semigroup.S.t -> Semigroup.S.t
end
module First :
functor (T : sig type t end) ->
sig type t = T.t val append : t -> t -> t end
module Last :
functor (T : sig type t end) ->
sig type t = T.t val append : t -> t -> t end
end