free-category (hackage): This package provides various data types for free categories, type aligned queues, arrows and type classes which allow to write abstract categories with side effects (Kleisli like categories).  These are useful for encoding type safe state machines.  Free arrows are also provided.
Keywords: algebra|category|category-theory|control|library|monads|mpl|free|state-machine