Fluokitten 0.5.2-SNAPSHOT

Category theory concepts in Clojure - Functors, Applicatives, Monads, Monoids and more.

Installation

To install, add the following dependency to your project or build file:

[uncomplicate/fluokitten "0.5.2-SNAPSHOT"]

Namespaces

uncomplicate.fluokitten.core

Contains core Fluokitten categorical functions. This is the
namespace that you want to use or require in your projects that use
Fluokitten built-in functionality or the functionality of various other
libraries that implement Fluokitten protocols.
Intended use: use or require this namespace and other namespaces that
contain the implementations of the protocols, by default jvm.

uncomplicate.fluokitten.jvm

Extends Clojure core with the implementations of
fluokitten protocols. Defines curried functions. Need to be
used or required for enabling Fluokitten on projects that
run on JVM platform.

uncomplicate.fluokitten.protocols

Defines Fluokitten protocols for various categorical concepts.
You need to use or require this namespace and provide your implementations
of these protocols if you want to extend Fluokitten with specific instances
of categorical concepts beyond those from Clojure core that Fluokitten
itself extends to be categorical. To use your own implementations, you need
to use or require the namespace where you define the implementations
from the calling code's namespace, as well as to use or require Fluokitten
core. Your implementations are normally not called directly from the client
code. The client code should call the generic functions from Fluokitten core.

uncomplicate.fluokitten.test

Macros that generate Midje tests for various laws that
categorical concepts have to satisfy. You should use these tests
to check if your implementations of clojure protocols are valid
beyond what the compiler can assert.

uncomplicate.fluokitten.utils

TODO