...which is of course sensible, but it causes trouble since some semigroup methods may not work. Here is an example:
gap> S := Semigroup(IdentityTransformation(4)); <group> gap> SmallGeneratingSet(S); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `SemigroupByGenerators' on 1 arguments called from SemigroupByGenerators( arg ) called from Semigroup( Generators( s ), rec( small := true ) ) called from <function "unknown">( <arguments> ) called from read-eval loop at line 7 of *stdin* you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk>
This is just an example of this recurring problem. This makes processing a list of semigroups very difficult, as one has to check for the trivial monoid. The problem is there in 1.2.