Monoids and semigroups with applications - Rhodes, John (1991)