A pragmatic functional programming library for JavaScript/TypeScript
Box: computation with one value
Pair: computation with two values
List: computation with zero, one or more values
NonEmptyList: computation with one or more values
Option: computation with a value that may be present or absent
Result: synchronous computation that may succeed or fail, short-circuits when a failure occurs
Validated: like Result, but accumulates errors instead of short-circuiting
State: stateful computation
Writer: computation with additional data (used for logging)
StringWriter: computation with log entries concatenated to a string
ListWriter: computation with log entries concatenated to a List instance
Future: asynchronous computation that may succeed or fail (a monadic alternative to Promises)
Program: interpretation of program descriptions
Action: wrapper around a function with no parameters that enables composition
Arrow: wrapper around a function with one or more parameters that enables composition and adaptation of the input
Semigroup: a type that supports an associative binary operation
objectCombination: a function to create combination schemes for objects based on semigroups
Monoid: a semigroup with an identity element
All: combines two booleans using logical AND
Any: combines two booleans using logical OR
Min: combines two numbers, resulting in the smallest of the two
Max: combines two numbers, resulting in the largest of the two
Sum: combines two numbers, resulting in the sum of the two
Product: combines two numbers, resulting in the product of the two
Earliest: combines two dates, resulting in the earlier of the two
Latest: combines two dates, resulting in the later of the two
StringConcatenation: combines two string using concatenation
ArrayConcatenation: combines two arrays using concatenation
ListConcatenation: combines two lists using concatenation
Equivalence: testing of equivalence between two values of the same type
objectEquivalence: a function to create equivalence schemes for objects based on member equivalences
Equalities for basic types: equalities for string, number, boolean and Date values and arrays of such values
Order: decision on the order of two values
Ordering: a type alias for the three possible outcomes (-1, 0 and 1)
Predicate: wrapper around predicate functions