Witchcraft v1.0.0-beta API Reference

Modules

Top level module

Applicative extends Apply with the ability to lift value into a particular data type or “context”

An extension of Witchcraft.Functor, Apply provides a way to map functions to their arguments when both are wrapped in the same kind of container

Arrows abstract the idea of computations, potentially with a context

Similar to Witchcraft.Functor, but able to map two functions over two separate portions of some data structure (some product type)

A category is some collection of objects and relationships (morphisms) between them

Chain function applications on contained data that may have some additional effect

The dual of monads, Comonad brings an unwrapping function to Extendable data

Extend is essentially “coChain”, meaning that it reverses the relationships in Chain

Data that can be folded over to change its structure by altering or combining elements

Functors are datatypes that allow the application of functions to their interior values. Always returns data in the same structure (same size, tree layout, and so on)

Very similar to Chain, Monad provides a way to link actions, and a way to bring plain values into the correct context (Applicative)

Monoid extends the semigroup with the concept of an “empty” or “zero” element

Ord describes how to order elements of a data type

A semigroup is a structure describing data that can be appendenated with others of its type. That is to say that appending another list returns a list, appending one map to another returns a map, and appending two integers returns an integer, and so on

A semigroupoid describes some way of composing morphisms on between some collection of objects

A setoid is a type with an equivalence relation

Walk across a data structure from left to right, running some action on each element in turn

The unit or Void type. A stand in for “no added information here”

Exceptions

Represent the error state of trying to fold over an empty structure

Protocols

Protocol for the Elixir.Witchcraft.Applicative type class

Protocol for the Elixir.Witchcraft.Apply type class

Protocol for the Elixir.Witchcraft.Arrow type class

Protocol for the Elixir.Witchcraft.Bifunctor type class

Protocol for the Elixir.Witchcraft.Category type class

Protocol for the Elixir.Witchcraft.Chain type class

Protocol for the Elixir.Witchcraft.Comonad type class

Protocol for the Elixir.Witchcraft.Extend type class

Protocol for the Elixir.Witchcraft.Foldable type class

Protocol for the Elixir.Witchcraft.Functor type class

Protocol for the Elixir.Witchcraft.Monad type class

Protocol for the Elixir.Witchcraft.Monoid type class

Protocol for the Elixir.Witchcraft.Ord type class

Protocol for the Elixir.Witchcraft.Semigroup type class

Protocol for the Elixir.Witchcraft.Semigroupoid type class

Protocol for the Elixir.Witchcraft.Setoid type class

Protocol for the Elixir.Witchcraft.Traversable type class