fp-ts
Version:
Functional programming in TypeScript
214 lines (213 loc) • 4.42 kB
JavaScript
import * as RT from './ReadonlyTuple';
// tslint:disable:readonly-array
// -------------------------------------------------------------------------------------
// model
// -------------------------------------------------------------------------------------
/**
* @category destructors
* @since 2.0.0
*/
export var fst = RT.fst;
/**
* @category destructors
* @since 2.0.0
*/
export var snd = RT.snd;
/**
* @category combinators
* @since 2.0.0
*/
export var swap = RT.swap;
/**
* @category instances
* @since 2.0.0
*/
export var getApply = RT.getApply;
/**
* @category instances
* @since 2.0.0
*/
export var getApplicative = RT.getApplicative;
/**
* @category instances
* @since 2.0.0
*/
export var getChain = RT.getChain;
/**
* @category instances
* @since 2.0.0
*/
export var getMonad = RT.getMonad;
// TODO: remove in v3
/**
* @category instances
* @since 2.0.0
*/
export var getChainRec = RT.getChainRec;
// -------------------------------------------------------------------------------------
// non-pipeables
// -------------------------------------------------------------------------------------
var map_ = RT.Functor.map;
var bimap_ = RT.Bifunctor.bimap;
var mapLeft_ = RT.Bifunctor.mapLeft;
var compose_ = RT.Semigroupoid.compose;
var extend_ = RT.Comonad.extend;
var reduce_ = RT.Foldable.reduce;
var foldMap_ = RT.Foldable.foldMap;
var reduceRight_ = RT.Foldable.reduceRight;
var traverse_ = RT.Traversable.traverse;
// -------------------------------------------------------------------------------------
// pipeables
// -------------------------------------------------------------------------------------
/**
* Map a pair of functions over the two type arguments of the bifunctor.
*
* @category Bifunctor
* @since 2.0.0
*/
export var bimap = RT.bimap;
/**
* Map a function over the first type argument of a bifunctor.
*
* @category Bifunctor
* @since 2.0.0
*/
export var mapLeft = RT.mapLeft;
/**
* @category Semigroupoid
* @since 2.0.0
*/
export var compose = RT.compose;
/**
* Derivable from `Extend`.
*
* @category combinators
* @since 2.0.0
*/
export var duplicate = RT.duplicate;
/**
* @category Extend
* @since 2.0.0
*/
export var extend = RT.extend;
/**
* @category Extract
* @since 2.6.2
*/
export var extract = RT.extract;
/**
* @category Foldable
* @since 2.0.0
*/
export var foldMap = RT.foldMap;
/**
* `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types
* use the type constructor `F` to represent some computational context.
*
* @category Functor
* @since 2.0.0
*/
export var map = RT.map;
/**
* @category Foldable
* @since 2.0.0
*/
export var reduce = RT.reduce;
/**
* @category Foldable
* @since 2.0.0
*/
export var reduceRight = RT.reduceRight;
/**
* @since 2.6.3
*/
export var traverse = RT.traverse;
/**
* @since 2.6.3
*/
export var sequence = RT.sequence;
// -------------------------------------------------------------------------------------
// instances
// -------------------------------------------------------------------------------------
/**
* @category instances
* @since 2.0.0
*/
export var URI = 'Tuple';
/**
* @category instances
* @since 2.7.0
*/
export var Functor = {
URI: URI,
map: map_
};
/**
* @category instances
* @since 2.7.0
*/
export var Bifunctor = {
URI: URI,
bimap: bimap_,
mapLeft: mapLeft_
};
/**
* @category instances
* @since 2.7.0
*/
export var Semigroupoid = {
URI: URI,
compose: compose_
};
/**
* @category instances
* @since 2.7.0
*/
export var Comonad = {
URI: URI,
map: map_,
extend: extend_,
extract: extract
};
/**
* @category instances
* @since 2.7.0
*/
export var Foldable = {
URI: URI,
reduce: reduce_,
foldMap: foldMap_,
reduceRight: reduceRight_
};
/**
* @category instances
* @since 2.7.0
*/
export var Traversable = {
URI: URI,
map: map_,
reduce: reduce_,
foldMap: foldMap_,
reduceRight: reduceRight_,
traverse: traverse_,
sequence: sequence
};
// TODO: remove in v3
/**
* @category instances
* @since 2.0.0
*/
export var tuple = {
URI: URI,
compose: compose_,
map: map_,
bimap: bimap_,
mapLeft: mapLeft_,
extract: extract,
extend: extend_,
reduce: reduce_,
foldMap: foldMap_,
reduceRight: reduceRight_,
traverse: traverse_,
sequence: sequence
};