(functor ((algebraic-structures semigroup) (S (<>))) (<>) (import S))