Haskell 98 semigroupoids: Category sans id; profiling data

A Semigroupoid is a Category without the requirement of identity arrows for
every object in the category.

When working with comonads you often have the <*> portion of an Applicative,
but not the pure. This was captured in Uustalu and Vene's "Essence of Dataflow
Programming" in the form of the ComonadZip class in the days before
Applicative. Apply provides a weaker invariant, but for the comonads used for
data flow programming (found in the streams package), this invariant is
preserved. Applicative function composition forms a semigroupoid.

This package provides a library for the Haskell programming language, compiled
for profiling. See http://www.haskell.org/ for more information on Haskell.