1 package JSci.maths.groups;2 3 /**4 * This interface defines a semigroup.5 * @jsci.planetmath Semigroup6 * @version 1.07 * @author Mark Hale8 */9 public interface Semigroup {10 11 /**12 * This interface defines a member of a semigroup.13 */14 interface Member extends JSci.maths.Member {15 /**16 * The semigroup composition law.17 * @param g a semigroup member18 */19 Member compose(Member g);20 }21 }22 23