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