Provides a wide array of semigroupoids and operations for working
with semigroupds.
A Semigroupoid is a Category without the requirement of identity
arrows for every object in the category.
