# Free Algebras [![Maintainer: coot](https://img.shields.io/badge/maintainer-coot-lightgrey.svg)](http://github.com/coot) [![POSIX](https://github.com/coot/free-algebras/actions/workflows/posix.yml/badge.svg)](https://github.com/coot/free-algebras/actions/workflows/posix.yml) Universal algebra approach (which is compatible with categorical approach) to free algebras (including higher order structures like functors, applicative functors or monads). Mathematical introduction alongside with some of the Haskell ideas is desribed in a [blog](https://coot.me/posts/free-monads.html) post. Examples: --------- * [TCP as a free monad](https://github.com/coot/free-algebras/blob/master/examples/src/Network/TCP.hs) * [free categories](https://coot.me/posts/kleisli-categories-and-free-monads.html) * [free categories with monadic effects](https://coot.me/posts/categories-with-monadic-effects.html) * [free category package](https://hackage.haskell.org/package/free-category)