This project specifies interoperability of common algebraic structures like Setoid, Ord, Semigroupoid, Category, Semigroup, Monoid, Group, Filterable, Functor, Contravariant, Apply, Applicative, etc. An algebra is a set of values, a set of operators that it is closed under and some laws it must obey. Each Fantasy Land algebra is a separate specification. An algebra may have dependencies on other algebras which must be implemented. "Value" is any JavaScript value, including any which have the structures defined below. "Equivalent" is an appropriate definition of equivalence for the given value. The definition should ensure that the two values can be safely swapped out in a program that respects abstractions. ...