Functor Semigroup.First

module First: 
functor (T : sig
type t 
end) -> S  with type t = T.t
Parameters:
T : sig type t end

type t 
val append : t -> t -> t