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 Extend
able 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