NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3958 most downloaded on npm
Functional programming in TypeScript
Last release 1 years ago
18 Aug 2025
Release timing varies
gaps range from 2 weeks to 9 months
Nearly every release is documented
notes for 59 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
233 releases · first in 2017
pipe: fix v8 performance cliff for >10 case stmts, #1585 (@pbadenski)
Add/fix pure comments, #1555 (@OliverJAsh)
One column per quarter.
deprecate range, use NonEmptyArray module instead.
Array
range, use NonEmptyArray module instead.function
Endomorphism, use Endomorphism module instead.getEndomorphismMonoid, use Endomorphism module instead.Predicate, use Predicate module instead.not, use Predicate module instead.Refinement, use Refinement module instead.Monoid
monoidVoid, use void module instead.NonEmptyArray
groupSort (it's just sort followed by group)Option
getRefinement, use Refinement module instead.getFirstMonoid, use getMonoid module instead.getLastMonoid, use getMonoid module instead.ReadonlyArray
range, use ReadonlyNonEmptyArray module instead.ReadonlyNonEmptyArray
groupSort (it's just sort followed by group)Record / ReadonlyRecord: deprecate overloads without Ord constraint (@anthonyjoeseph):
collectreducefoldMapreduceRightreduceWithIndexfoldMapWithIndexreduceRightWithIndexgetShowFoldable in favour of getFoldable (@anthonyjoeseph)FoldableWithIndex in favour of getFoldableWithIndex (@anthonyjoeseph)Traversable in favour of getTraversable (@anthonyjoeseph)TraversableWithIndex in favour of getTraversableWithIndex (@anthonyjoeseph)Witherable in favour of getWitherable (@anthonyjoeseph)Semigroup
semigroupVoid, use void module instead.Endomorphism modulePredicate moduleRefinement moduleFromState moduleFromThese modulevoid moduleFromReader moduleNaturalTransformation moduleZero moduleAlt
altAllAlternative
altAllArray
prependW, appendW (@thewilkybarkid)fromOption, fromPredicate (@cdimitroulas)filterEChainRecDepthFirst instance (@qlonik)chainRecDepthFirstChainRecBreadthFirst instance (@qlonik)chainRecBreadthFirstgetUnionSemigroupgetUnionMonoidgetIntersectionSemigroupgetDifferenceMagmafromEitherFromEither instancefromEitherKisEmpty a user defined guardconcat / concatWmatch, matchW, matchLeftW, matchRightWfromOptionKZero instanceguard constructorexists aliasboolean
isBooleanEither
chainOptionKflattenWtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndexEitherT
orElseFirstorLeftfunction
SK (@cdimitroulas)applyIO
traverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndexIOEither
orElseFirst / orElseFirstWorLeftflattenWtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndextraverseReadonlyNonEmptyArrayWithIndexSeqtraverseReadonlyArrayWithIndexSeqMagma
reversefilterFirstfilterSecondendoconcatAllMap
unionintersectiondifferencegetUnionSemigroupgetUnionMonoidgetIntersectionSemigroupgetDifferenceMagmagetFoldablefoldMapreduceRightreduceWithIndexfoldMapWithIndexreduceRightWithIndexNonEmptyArray
matchLeft, matchRight, modifyHead, modifyLast (@cdimitroulas)uniongetUnionSemigroupmakeByrangeconcat pipeablenumber
MagmaSubisNumberstring
isStringOption
FromEither instancefromEitherKchainEitherKZero instanceguard constructortraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndexOrd
trivial instanceequalsReader
asksReaderW, asksReaderflattenWtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndexReaderEither
asksReaderEitherW, asksReaderEitherorElseFirst / orElseFirstWorLeftchainReaderKWchainFirstReaderK, chainFirstReaderKWflattenWtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndexReaderTask
asksReaderTaskW, asksReaderTaskchainReaderKWchainFirstReaderK, chainFirstReaderKWflattenWtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndextraverseReadonlyNonEmptyArrayWithIndexSeqtraverseReadonlyArrayWithIndexSeqReaderTaskEither
asksReaderTaskEitherW, asksReaderTaskEitherorElseFirst / orElseFirstWorLeftfromReaderTaskKfromReaderEitherKchainReaderKWchainReaderTaskK, chainReaderTaskKWchainFirstReaderK, chainFirstReaderKWchainFirstReaderTaskK, chainFirstReaderTaskKWchainReaderEitherK, chainReaderEitherKWchainFirstReaderEitherK, chainFirstReaderEitherKWchainFirstTaskEitherK, chainFirstTaskEitherKWflattenWtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndextraverseReadonlyNonEmptyArrayWithIndexSeqtraverseReadonlyArrayWithIndexSeqReadonlyArray
prependW, appendW (@thewilkybarkid)filterEChainRecDepthFirst instance (@qlonik)chainRecDepthFirstChainRecBreadthFirst instance (@qlonik)chainRecBreadthFirstgetUnionSemigroupgetUnionMonoidgetIntersectionSemigroupgetDifferenceMagmafromOptionfromPredicatefromEitherFromEither instancefromEitherKisEmpty a user defined guardconcat / concatWmatch, matchW, matchLeftW, matchRightWfromOptionKZero instanceguard constructorexists aliasReadonlyMap
unionintersectiondifferencegetUnionSemigroupgetUnionMonoidgetIntersectionSemigroupgetDifferenceMagmareducefoldMapreduceRightreduceWithIndexfoldMapWithIndexreduceRightWithIndexReadonlyNonEmptyArray
matchLeft, matchRight, modifyHead, modifyLast (@cdimitroulas)uniongetUnionSemigroupmakeByrangeconcat pipeableReadonlyRecord
union (@anthonyjoeseph)intersection (@anthonyjoeseph)difference (@anthonyjoeseph)getUnionSemigroup (@anthonyjoeseph)getUnionMonoid (@anthonyjoeseph)getIntersectionSemigroup (@anthonyjoeseph)getDifferenceMagma (@anthonyjoeseph)ReadonlySet
getUnionSemigroupgetDifferenceMagmaRecord
unionintersectiondifferencegetUnionSemigroupgetUnionMonoidgetIntersectionSemigroupgetDifferenceMagmaSet
getUnionSemigroupgetDifferenceMagmaState
traverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndexStateReaderTaskEither
fromStateKchainStateKlocalasksStateReaderTaskEitherW, asksStateReaderTaskEitherchainReaderKWchainFirstReaderK, chainFirstReaderKWflattenWtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndexstring
toUpperCasetoLowerCasereplacesplittrimtrimLefttrimRightincludesstartsWithendsWithslicestruct
evolveTask
ApTtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndextraverseReadonlyNonEmptyArrayWithIndexSeqtraverseReadonlyArrayWithIndexSeqTaskEither
fromTaskOption (@thewilkybarkid)fromTaskOptionKchainTaskOptionKorElseFirst / orElseFirstWorLeftflattenWtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndextraverseReadonlyNonEmptyArrayWithIndexSeqtraverseReadonlyArrayWithIndexSeqTaskOption
fromTaskEither (@thewilkybarkid)Zero instanceguard constructortraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndextraverseReadonlyNonEmptyArrayWithIndexSeqtraverseReadonlyArrayWithIndexSeqFromEither instanceTaskThese
ApTtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndextraverseReadonlyNonEmptyArrayWithIndexSeqtraverseReadonlyArrayWithIndexSeqThese
elemexistsApTtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndexTree
existsWitherable
filterE, #1458 (@vinassefranche)wiltDefaultwitherDefaultEither
isLeftisRightOption
isNoneThese
isLeftisRightNothing published for this version
To get started using the RC use npm with the following command:
To get started using the RC use npm with the following command:
npm install fp-ts@rc
string
split now returns a ReadonlyNonEmptyArrayTaskOption
FromEither instance2.11.0-rc.1 caused type inference issues
Array / ReadonlyArray
isOutOfBound signature changeisEmpty signature changesize signature changeEither
exists signature changeelem signature changeThese
exists signature changeelem signature changeNonEmptyArray / ReadonlyNonEmptyArray
isOutOfBound signature changeSet / ReadonlySet
isEmpty signature changesize signature changeMap / ReadonlyMap
isEmpty signature changesize signature changedeprecate range, use NonEmptyArray module instead.
To get started using the RC use npm with the following command:
npm install fp-ts@rc
Array
range, use NonEmptyArray module instead.function
Endomorphism, use Endomorphism module instead.getEndomorphismMonoid, use Endomorphism module instead.Predicate, use Predicate module instead.not, use Predicate module instead.Refinement, use Refinement module instead.Monoid
monoidVoid, use void module instead.NonEmptyArray
groupSort (it's just sort followed by group)Option
getRefinement, use Refinement module instead.getFirstMonoid, use getMonoid module instead.getLastMonoid, use getMonoid module instead.ReadonlyArray
range, use ReadonlyNonEmptyArray module instead.ReadonlyNonEmptyArray
groupSort (it's just sort followed by group)Record / ReadonlyRecord: deprecate overloads without Ord constraint (@anthonyjoeseph):
collectreducefoldMapreduceRightreduceWithIndexfoldMapWithIndexreduceRightWithIndexgetShowFoldable in favour of getFoldable (@anthonyjoeseph)FoldableWithIndex in favour of getFoldableWithIndex (@anthonyjoeseph)Traversable in favour of getTraversable (@anthonyjoeseph)TraversableWithIndex in favour of getTraversableWithIndex (@anthonyjoeseph)Witherable in favour of getWitherable (@anthonyjoeseph)Semigroup
semigroupVoid, use void module instead.Endomorphism modulePredicate moduleRefinement moduleFromState moduleFromThese modulevoid moduleFromReader moduleNaturalTransformation moduleZero moduleAlt
altAllAlternative
altAllArray
prependW, appendW (@thewilkybarkid)fromOption, fromPredicate (@cdimitroulas)filterEChainRecDepthFirst instance (@qlonik)chainRecDepthFirstChainRecBreadthFirst instance (@qlonik)chainRecBreadthFirstgetUnionSemigroupgetUnionMonoidgetIntersectionSemigroupgetDifferenceMagmafromEitherFromEither instancefromEitherKisEmpty a user defined guardconcat / concatWmatch, matchW, matchLeftW, matchRightWfromOptionKZero instanceguard constructorexists aliasboolean
isBooleanEither
chainOptionKflattenWtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndexEitherT
orElseFirstorLeftfunction
SK (@cdimitroulas)applyIO
traverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndexIOEither
orElseFirst / orElseFirstWorLeftflattenWtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndextraverseReadonlyNonEmptyArrayWithIndexSeqtraverseReadonlyArrayWithIndexSeqMagma
reversefilterFirstfilterSecondendoconcatAllMap
unionintersectiondifferencegetUnionSemigroupgetUnionMonoidgetIntersectionSemigroupgetDifferenceMagmagetFoldablefoldMapreduceRightreduceWithIndexfoldMapWithIndexreduceRightWithIndexNonEmptyArray
matchLeft, matchRight, modifyHead, modifyLast (@cdimitroulas)uniongetUnionSemigroupmakeByrangeconcat pipeablenumber
MagmaSubisNumberstring
isStringOption
FromEither instancefromEitherKchainEitherKZero instanceguard constructortraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndexOrd
trivial instanceequalsReader
asksReaderW, asksReaderflattenWtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndexReaderEither
asksReaderEitherW, asksReaderEitherorElseFirst / orElseFirstWorLeftchainReaderKWchainFirstReaderK, chainFirstReaderKWflattenWtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndexReaderTask
asksReaderTaskW, asksReaderTaskchainReaderKWchainFirstReaderK, chainFirstReaderKWflattenWtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndextraverseReadonlyNonEmptyArrayWithIndexSeqtraverseReadonlyArrayWithIndexSeqReaderTaskEither
asksReaderTaskEitherW, asksReaderTaskEitherorElseFirst / orElseFirstWorLeftfromReaderTaskKfromReaderEitherKchainReaderKWchainReaderTaskK, chainReaderTaskKWchainFirstReaderK, chainFirstReaderKWchainFirstReaderTaskK, chainFirstReaderTaskKWchainReaderEitherK, chainReaderEitherKWchainFirstReaderEitherK, chainFirstReaderEitherKWchainFirstTaskEitherK, chainFirstTaskEitherKWflattenWtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndextraverseReadonlyNonEmptyArrayWithIndexSeqtraverseReadonlyArrayWithIndexSeqReadonlyArray
prependW, appendW (@thewilkybarkid)filterEChainRecDepthFirst instance (@qlonik)chainRecDepthFirstChainRecBreadthFirst instance (@qlonik)chainRecBreadthFirstgetUnionSemigroupgetUnionMonoidgetIntersectionSemigroupgetDifferenceMagmafromOptionfromPredicatefromEitherFromEither instancefromEitherKisEmpty a user defined guardconcat / concatWmatch, matchW, matchLeftW, matchRightWfromOptionKZero instanceguard constructorexists aliasReadonlyMap
unionintersectiondifferencegetUnionSemigroupgetUnionMonoidgetIntersectionSemigroupgetDifferenceMagmareducefoldMapreduceRightreduceWithIndexfoldMapWithIndexreduceRightWithIndexReadonlyNonEmptyArray
matchLeft, matchRight, modifyHead, modifyLast (@cdimitroulas)uniongetUnionSemigroupmakeByrangeconcat pipeableReadonlyRecord
union (@anthonyjoeseph)intersection (@anthonyjoeseph)difference (@anthonyjoeseph)getUnionSemigroup (@anthonyjoeseph)getUnionMonoid (@anthonyjoeseph)getIntersectionSemigroup (@anthonyjoeseph)getDifferenceMagma (@anthonyjoeseph)ReadonlySet
getUnionSemigroupgetDifferenceMagmaRecord
unionintersectiondifferencegetUnionSemigroupgetUnionMonoidgetIntersectionSemigroupgetDifferenceMagmaSet
getUnionSemigroupgetDifferenceMagmaState
traverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndexStateReaderTaskEither
fromStateKchainStateKlocalasksStateReaderTaskEitherW, asksStateReaderTaskEitherchainReaderKWchainFirstReaderK, chainFirstReaderKWflattenWtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndexstring
toUpperCasetoLowerCasereplacesplittrimtrimLefttrimRightincludesstartsWithendsWithslicestruct
evolveTask
ApTtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndextraverseReadonlyNonEmptyArrayWithIndexSeqtraverseReadonlyArrayWithIndexSeqTaskEither
fromTaskOption (@thewilkybarkid)fromTaskOptionKchainTaskOptionKorElseFirst / orElseFirstWorLeftflattenWtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndextraverseReadonlyNonEmptyArrayWithIndexSeqtraverseReadonlyArrayWithIndexSeqTaskOption
fromTaskEither (@thewilkybarkid)Zero instanceguard constructortraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndextraverseReadonlyNonEmptyArrayWithIndexSeqtraverseReadonlyArrayWithIndexSeqTaskThese
ApTtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndextraverseReadonlyNonEmptyArrayWithIndexSeqtraverseReadonlyArrayWithIndexSeqThese
elemexistsApTtraverseReadonlyNonEmptyArrayWithIndextraverseReadonlyArrayWithIndexTree
existsWitherable
filterE, #1458 (@vinassefranche)wiltDefaultwitherDefaultEither
existsisLeftisRightelemOption
isNoneThese
isLeftisRightSet / ReadonlySet
isEmptysizeArray / ReadonlyArray
isEmptyisOutOfBoundsizeMap / ReadonlyMap
isEmptysizeNonEmptyArray / ReadonlyNonEmptyArray
isOutOfBoundfix typo in fromF, #1503 (@DKurilo)
StateT
fromF, #1503 (@DKurilo)altW left type is too wide in Either-based data types, #1488 (@wmaurer)
altW left type is too wide in Either-based data types, #1488 (@wmaurer)traverseArrayWithIndex does not pass the output state from each step to the subsequent step, #1486
StateReaderTaskEither
traverseArrayWithIndex does not pass the output state from each step to the subsequent step, #1486hasOwnProperty should be an alias of ReadonlyRecord.hasOwnProperty
Record
hasOwnProperty should be an alias of ReadonlyRecord.hasOwnPropertyrename hasOwnProperty in internal module, #1481 (@OliverJAsh)
hasOwnProperty in internal module, #1481 (@OliverJAsh)deprecate pipeable module, use the specific helpers instead
pipeable module, use the specific helpers insteadValidationT module, use EitherT insteadApplicative
getApplicativeComposition, use ap helper insteadArray
prependToAll, use prependAll insteadcons in favour of prependsnoc in favour of appendemptyBooleanAlgebra
booleanAlgebraBoolean, use boolean.BooleanAlgebra insteadgetFunctionBooleanAlgebra, use function.getBooleanAlgebra insteadgetDualBooleanAlgebra, use reverse insteadBounded
boundedNumber, use number.Bounded insteadChoice
splitChoice in favour of splitfanin in favour of fanInCompactable
getCompactableComposition, use compact, separate helpers insteadSeparated, use Separated.Separated insteadEither
getApplySemigroup in favour of Apply.getApplySemigroupgetApplyMonoid in favour of Applicative.getApplicativeMonoidgetValidationSemigroup in favour of Apply.getApplySemigroupgetValidationMonoid in favour of Applicative.getApplicativeMonoidgetValidation, use getApplicativeValidation and getAltValidation insteadJson type, use the Json module insteadparseJSON type, use the Json module insteadstringifyJSON type, use the Json module insteadEq
eqBoolean, use boolean.Eq insteadeqString, use string.Eq insteadeqNumber, use number.Eq insteadeqDate, use Date.Eq insteadgetStructEq, use struct insteadgetTupleEq, use tuple insteadFilterable
getFilterableComposition, use filter, filterMap, partition, partitionMap helpers insteadFoldable
toArray in favour of toReadonlyArraygetFoldableComposition, use reduce, foldMap, reduceRight helpers insteadFoldableWithIndex
getFoldableWithIndexComposition, use reduceWithIndex, foldMapWithIndex, reduceRightWithIndex helpers insteadFunctor
getFunctorComposition, use map helper insteadFunctorWithIndex
getFunctorWithIndexComposition, use mapWithIndex helper insteadIO
getSemigroup in favour of Apply.getApplySemigroupgetMonoid in favour of Applicative.getApplicativeMonoidfromIOIOEither
getApplySemigroup in favour of Apply.getApplySemigroupgetApplyMonoid in favour of Applicative.getApplicativeMonoidgetSemigroup in favour of Apply.getApplySemigroupgetIOValidation, use getApplicativeIOValidation and getAltIOValidation insteadMap
insertAt in favour of upsertAtemptyMonoid
monoidAll, use boolean.MonoidAll insteadmonoidAny, use boolean.MonoidAny insteadgetFunctionMonoid, use function.getMonoid insteadgetEndomorphismMonoid, use function.getEndomorphismMonoid instead (Note. The execution order in
function.getEndomorphismMonoid is reversed)monoidString, use string.Monoid insteadmonoidSum, use number.MonoidSum insteadmonoidProduct, use number.MonoidProduct insteadfold, use concatAll insteadgetMeetMonoid, use min insteadgetJoinMonoid, use max insteadgetDualMonoid, use reverse insteadgetStructMonoid, use struct insteadgetTupleMonoid, use tuple insteadNonEmptyArray
fold, use concatAll insteadprependToAll, use prependAll insteadcons in favour of prependsnoc in favour of appenduncons in favour of unprependunsnoc in favour of unappendfilter in favour of Array's filterfilterWithIndex in favour of Array's filterWithIndexOption
getApplySemigroup in favour of Apply.getApplySemigroupgetApplyMonoid in favour of Applicative.getApplicativeMonoidOrd
ordBoolean, use boolean.Ord insteadordString, use string.Ord insteadordNumber, use number.Ord insteadordDate, use Date.Ord insteadgetDualOrd, use reverse insteadgetTupleOrd, use tuple insteadOrdering
eqOrdering, use Eq insteadmonoidOrdering, use Monoid insteadinvert in favour of reverseRing
getFunctionRing, use function.getRing insteadReader
getSemigroup in favour of Apply.getApplySemigroupgetMonoid in favour of Applicative.getApplicativeMonoidReaderEither
getApplySemigroup in favour of Apply.getApplySemigroupgetApplyMonoid in favour of Applicative.getApplicativeMonoidgetSemigroup in favour of Apply.getApplySemigroupgetReaderValidation, use getApplicativeReaderValidation and getAltReaderValidation insteadlocal, Use Reader's local insteadReaderTask
getSemigroup in favour of Apply.getApplySemigroupgetMonoid in favour of Applicative.getApplicativeMonoidrunlocal, Use Reader's local insteadReaderTaskEither
getApplySemigroup in favour of Apply.getApplySemigroupgetApplyMonoid in favour of Applicative.getApplicativeMonoidgetSemigroup in favour of Apply.getApplySemigroupgetReaderTaskValidation, use getApplicativeReaderTaskValidation and getAltReaderTaskValidation insteadrunlocal, Use Reader's local insteadReaderTaskEither
runReadonlyArray
prependToAll, use prependAll insteadcons in favour of prependsnoc in favour of appendReadonlyNonEmptyArray
fold, use concatAll insteadprependToAll, use prependAll insteadinsertAt, Use ReadonlyArray's insertAt insteadcons in favour of prependsnoc in favour of appenduncons in favour of unprependunsnoc in favour of unappendfilter in favour of ReadonlyArray's filterfilterWithIndex in favour of ReadonlyArray's filterWithIndexReadonlyMap
insertAt in favour of upsertAtReadonlyRecord
hasOwnProperty, use has insteadinsertAt in favour of upsertAtReadonlySet
fromArray in favour of fromReadonlyArrayReadonlyTuple
mapLeft in favour of mapSndmap in favour of mapFstRecord
hasOwnProperty, use has insteadinsertAt in favour of upsertAtemptyRing
getTupleRing, use tuple insteadSemigroup
semigroupAll, use boolean.SemigroupAll insteadsemigroupAny, use boolean.SemigroupAny insteadgetFunctionSemigroup, use function.getSemigroup insteadsemigroupString, use string.Semigroup insteadsemigroupSum, use number.SemigroupSum insteadsemigroupProduct, use number.SemigroupProduct insteadfold, use concatAll insteadgetIntercalateSemigroup, use intercalate insteadgetMeetSemigroup, use min insteadgetJoinSemigroup, use max insteadgetDualSemigroup, use reverse insteadgetStructSemigroup, use struct insteadgetTupleSemigroup, use tuple insteadgetFirstSemigroup, use first insteadgetLastSemigroup, use last insteadgetObjectSemigroup, use assign insteadSet
subset in favour of isSubsetShow
showBoolean, use boolean.Show insteadshowString, use string.Show insteadshowNumber, use number.Show insteadgetStructShow, use struct insteadgetTupleShow, use tuple insteadStrong
splitStrong in favour of splitfanout in favour of fanOutTask
getSemigroup in favour of Apply.getApplySemigroupgetMonoid in favour of Applicative.getApplicativeMonoidfromTaskTaskEither
getApplySemigroup in favour of Apply.getApplySemigroupgetApplyMonoid in favour of Applicative.getApplicativeMonoidgetSemigroup in favour of Apply.getApplySemigroupgetTaskValidation, use getApplicativeTaskValidation and getAltTaskValidation insteadTaskThese
functorTaskThese instance in favour of FunctorbifunctorTaskThese instance in favour of BifunctorgetSemigroup in favour of Apply.getApplySemigrouptoTuple in favour of toTuple2These
toTuple in favour of toTuple2Traversable
getTraversableComposition, use traverse, sequence helpers insteadTuple
mapLeft in favour of mapSndmap in favour of mapFstPointed type classFromEither type classFromIO type classFromTask type classTaskOption modulestring modulenumber moduleSeparated module (@YBogomolov)Json moduleApply
ap helperapS helperapFirst helperapSecond helpergetApplySemigroupApplicative
getApplicativeMonoidArray
Pointed instanceApply instancematchLeft aliasmatchRight aliassizeunsafeInsertAt signaturechunksOf signaturegetSemigroupboolean
foldWmatch aliasmatchW aliasEq instanceBooleanAlgebra instanceSemigroupAll instanceSemigroupAny instanceMonoidAll instanceMonoidAny instanceOrd instanceShow instanceBooleanAlgebra
reverseChain
bind helperchainFirst helperCompactable
compact helperseparate helperseparated constructorDate
Eq instanceOrd instanceFilterable
filter helperfilterMap helperpartition helperpartitionMap helperFoldable
reduce helperfoldaMap helperreduceRight helperFoldableWithIndex
reduceWithIndex helperfoldaMapWithIndex helperreduceRightWithIndex helperfunction
getBooleanAlgebragetSemigroupgetMonoidgetSemiringgetRinggetEndomorphismMonoidFunctor
map helperbindTo helperflap derivable, #1393 (@williamareynolds)FunctorWithIndex
mapWithIndex helperEither
Pointed instanceApply instancegetCompactablegetFilterableFromEither instancetoUnion, closes #1362foldWmatch aliasmatchW aliasorElseWtryCatchKfromOptionKchainOptionKEitherT
getEitherM into separated functionsEq
getSemigroupstructtupleIdentity
Pointed instanceApply instanceIO
Pointed instanceApply instanceFromIO instanceIOEither
Pointed instancegetCompactableFromIO instanceFromEither instancetryCatchK combinatortoUnionfoldWmatch aliasmatchW aliasorElseWfromOptionKchainOptionKMap
filterWithIndex combinatorfilterMapWithIndex combinatorpartitionWithIndex combinatorpartitionMapWithIndex combinatorgetTraversableWithIndex instancegetFoldableWithIndex instanceMonoid
concatAllminmaxreversestructtupleNonEmptyArray
Pointed instanceApply instanceconcatAllisNonEmpty guardfromReadonlyNonEmptyArray constructorchainWithIndex combinatorchopsplitAtchunksOfOption
Pointed instanceApply instancefoldWmatch aliasmatchW aliastryCatchKOptionT
getOptionM into separated functionsOrd
equalsDefaultreversetupleOrdering
Eq instanceSemigroup instanceMonoid instancematchRandom
randomElemReader
Pointed instanceApply instancefirst, second, left, rightReaderT
getReaderM into separated functionsReaderEither
Pointed instanceApply instanceFromEither instancegetCompactablegetFilterabletoUnionfoldWmatch aliasmatchW aliasorElseWfromOptionKchainOptionKReaderTask
Pointed instanceApplyPar instanceApplySeq instanceFromIO instanceFromTask instancetraverseSeqArrayWithIndextraverseSeqArraysequenceSeqArrayChain instanceMonad instanceMonadIO instanceMonadTask instanceReaderTaskEither
Pointed instanceApplyPar instanceApplySeq instanceFromIO instanceFromTask instanceFromEither instancegetCompactablegetFilterabletoUnionfoldWmatch aliasmatchW aliasorElseWfromOptionKchainOptionKChain instanceMonad instanceMonadIO instanceMonadTask instanceMonadThrow instanceReadonlyArray
Pointed instanceApply instancegetSemigroupmatchLeft instancematchRight instancesizeunsafeInsertAt signaturechunksOf signature, closes #1407ReadonlyMap
filterWithIndex combinatorfilterMapWithIndex combinatorpartitionWithIndex combinatorpartitionMapWithIndex combinatorgetFunctorWithIndexgetFoldablegetFoldableWithIndexgetTraversablegetTraversableWithIndexReadonlyNonEmptyArray
Pointed instanceApply instanceconcatAllisNonEmptychainWithIndexchopsplitAtchunksOfReadonlySet
isEmptysizetoggleRing
tupleSet
isEmptysizeSemigroup
constantconcatAllintercalateminmaxstructtuplefirstlastassignShow
structtupleState
Pointed instanceApply instanceStateT
getStateM into separated functionsStateReaderTaskEither
Pointed instanceApply instanceMonad instanceFromIO instanceFromTask instanceFromEither instancefromOptionKchainOptionKMonadIO instanceMonadTask instanceMonadThrow instanceTask
Pointed instanceApplyPar instanceApplySeq instanceFromIO instanceFromTask instanceChain instanceMonad instanceMonadIO instanceMonadTask instanceTaskEither
Pointed instanceApplyPar instanceApplySeq instancegetCompactableFromIO instanceFromTask instanceFromEither instancetoUnionfoldWmatch aliasmatchW aliasorElseWfromOptionKchainOptionKChain instanceMonad instanceMonadIO instanceMonadTask instanceMonadThrow instanceTaskThese
Functor instancePointed instanceBifunctor instancetoTuple2getApplyFromIO instanceFromTask instancefromEither functionFromEither instancegetChain instancefoldWmatch aliasmatchW aliasfromOptionfromOptionKfromPredicateThese
Pointed instanceof functiongetApplytoTuple2FromEither instancefromOption constructorfoldWmatch aliasmatchW aliasfromOptionKTaskOption
Chain instanceMonad instanceTheseT
getTheseM into separated functionsTraversable
traverse helpersequence helperTree
Pointed instanceApply instanceWriter
getPointedgetApplygetApplicativegetChainReadonlyRecord / Record: remove extends string constraints in singleton / insertAt, closes #1413TaskOption
getOrElseW signatureinternal modulebindTo, bind, bindW, apS, apSW is now correctly readonlyFromEither type parameter orderArray / ReadonlyArray
some, #1424 (@thewilkybarkid)matchLeft, matchRight type parameter orderEitherT
Kind2, Kind3, Kind4OptionT
Kind2, Kind3, Kind4ReaderT
Kind2, Kind3, Kind4ReadonlyMap
getShowReadonlySet
getShowStateT
Kind2, Kind3TheseT
Kind2, Kind3, Kind4To get started using the RC use npm with the following command:
To get started using the RC use npm with the following command:
npm install fp-ts@rc
bindTo, bind, bindW, apS, apSW is now correctly readonlyFromEither type parameter orderBreaking Change (with respect to 2.10.0-rc)
To get started using the RC use npm with the following command:
npm install fp-ts@rc
2.10.0-rc)
object to structBreaking Change (with respect to 2.10.0-rc)
To get started using the RC use npm with the following command:
npm install fp-ts@rc
ReadonlyNonEmptyArray
NonEmptyArray, closes #14432.10.0-rc)
EitherT
match to matchE and add matchIOEither
match / matchW to matchE / matchWE and add match / matchWOptionT
match to matchE and add matchReaderEither
match / matchW to matchE / matchWE and add match / matchWReaderTaskEither
match / matchW to matchE / matchWE and add match / matchWTheseT
match to matchE and add matchTaskEither
match / matchW to matchE / matchWE and add match / matchWTaskOption
match / matchW to matchE / matchWE and add match / matchWTaskThese
match / matchW to matchE / matchWE and add match / matchWBreaking Change (with respect to 2.10.0-rc)
To get started using the RC use npm with the following command:
npm install fp-ts@rc
TaskOption
getOrElseW signature2.10.0-rc)
OptionT
none to zero and change signatureReaderT
ask, asks (they will be derived from the FromReader type-class in 2.11)Semigroup
assign to object module and rename to getAssignSemigroupReaderT
get, put, modify, gets (they will be derived from the FromState type-class in 2.11)Tuple
mapLeft in favour of mapSndmap in favour of mapFstReadonlyTuple
mapLeft in favour of mapSndmap in favour of mapFstArray / ReadonlyArray
some, #1424 (@thewilkybarkid)matchLeft, matchRight type parameter orderEitherT
Kind2, Kind3, Kind4OptionT
Kind2, Kind3, Kind4ReaderT
Kind2, Kind3, Kind4ReadonlyMap
getShowReadonlySet
getShowStateT
Kind2, Kind3TheseT
Kind2, Kind3, Kind4internal moduledeprecate filter in favour of Array's filter
To get started using the RC use npm with the following command:
npm install fp-ts@rc
Array
emptyMap
emptyNonEmptyArray
filter in favour of Array's filterfilterWithIndex in favour of Array's filterWithIndexReadonlyNonEmptyArray
filter in favour of ReadonlyArray's filterfilterWithIndex in favour of ReadonlyArray's filterWithIndexRecord
emptyNonEmptyArray
append, prepend, isNonEmptyReadonlyNonEmptyArray
append, prepend, isNonEmptydeprecate cons in favour of prepend
Array
cons in favour of prependsnoc in favour of appendOrdering
invert in favour of reverseReadonlyMap
insertAt in favour of upsertAtReadonlyRecord
insertAt in favour of upsertAtMap
insertAt in favour of upsertAtNonEmptyArray
cons in favour of prependsnoc in favour of appenduncons in favour of unprependunsnoc in favour of unappendRecord
insertAt in favour of upsertAtReadonlyArray
cons in favour of prependsnoc in favour of appendReadonlyNonEmptyArray
insertAt, Use ReadonlyArray's insertAt insteadcons in favour of prependsnoc in favour of appenduncons in favour of unprependunsnoc in favour of unappendReadonlySet
fromArray in favour of fromReadonlyArraySet
subset in favour of isSubsetArray
sizeunsafeInsertAt signaturechunksOf signaturegetSemigroupMap
filterWithIndex combinatorfilterMapWithIndex combinatorpartitionWithIndex combinatorpartitionMapWithIndex combinatorgetTraversableWithIndex instancegetFoldableWithIndex instanceNonEmptyArray
isNonEmpty guardfromReadonlyNonEmptyArray constructorchainWithIndex combinatorchopsplitAtchunksOfOrdering
matchReadonlyArray
sizeunsafeInsertAt signaturechunksOf signature, closes #1407ReadonlyNonEmptyArray
isNonEmptychainWithIndexchopsplitAtchunksOfReadonlySet
isEmptysizetoggleSet
isEmptysizestring
emptyisEmptysizeReadonlyRecord / Record: remove extends string constraints in singleton / insertAt, closes #1413deprecate splitChoice in favour of split
To get started using the RC use npm with the following command:
npm install fp-ts@rc
Choice
splitChoice in favour of splitfanin in favour of fanInStrong
splitString in favour of splitfanout in favour of fanOutReader
first, second, left, rightReaderTask
Chain instanceMonad instanceMonadIO instanceMonadTask instanceReaderTaskEither
Chain instanceMonad instanceMonadIO instanceMonadTask instanceMonadThrow instanceStateReaderTaskEither
MonadIO instanceMonadTask instanceMonadThrow instanceTask
Chain instanceMonad instanceMonadIO instanceMonadTask instanceTaskEither
Chain instanceMonad instanceMonadIO instanceMonadTask instanceMonadThrow instanceTaskOption
Chain instanceMonad instanceCompactable
compact / separate constraintsdeprecate pipeable module, use the specific helpers instead
pipeable module, use the specific helpers insteadValidationT module, use EitherT insteadApplicative
getApplicativeComposition, use ap helper insteadArray
prependToAll, use prependAll insteadBooleanAlgebra
booleanAlgebraBoolean, use boolean.BooleanAlgebra insteadgetFunctionBooleanAlgebra, use function.getBooleanAlgebra insteadgetDualBooleanAlgebra, use reverse insteadBounded
boundedNumber, use number.Bounded insteadCompactable
getCompactableComposition, use compact, separate helpers insteadSeparated, use Separated.Separated insteadEither
getApplySemigroup in favour of Apply.getApplySemigroupgetApplyMonoid in favour of Applicative.getApplicativeMonoidgetValidationSemigroup in favour of Apply.getApplySemigroupgetValidationMonoid in favour of Applicative.getApplicativeMonoidgetValidation, use getApplicativeValidation and getAltValidation insteadJson type, use the Json module insteadparseJSON type, use the Json module insteadstringifyJSON type, use the Json module insteadEq
eqBoolean, use boolean.Eq insteadeqString, use string.Eq insteadeqNumber, use number.Eq insteadeqDate, use Date.Eq insteadgetStructEq, use struct insteadgetTupleEq, use tuple insteadFilterable
getFilterableComposition, use filter, filterMap, partition, partitionMap helpers insteadFoldable
toArray in favour of toReadonlyArraygetFoldableComposition, use reduce, foldMap, reduceRight helpers insteadFoldableWithIndex
getFoldableWithIndexComposition, use reduceWithIndex, foldMapWithIndex, reduceRightWithIndex helpers insteadFunctor
getFunctorComposition, use map helper insteadFunctorWithIndex
getFunctorWithIndexComposition, use mapWithIndex helper insteadIO
getSemigroup in favour of Apply.getApplySemigroupgetMonoid in favour of Applicative.getApplicativeMonoidfromIOIOEither
getApplySemigroup in favour of Apply.getApplySemigroupgetApplyMonoid in favour of Applicative.getApplicativeMonoidgetSemigroup in favour of Apply.getApplySemigroupgetIOValidation, use getApplicativeIOValidation and getAltIOValidation insteadMonoid
monoidAll, use boolean.MonoidAll insteadmonoidAny, use boolean.MonoidAny insteadgetFunctionMonoid, use function.getMonoid insteadgetEndomorphismMonoid, use function.getEndomorphismMonoid instead (Note. The execution order in
function.getEndomorphismMonoid is reversed)monoidString, use string.Monoid insteadmonoidSum, use number.MonoidSum insteadmonoidProduct, use number.MonoidProduct insteadfold, use concatAll insteadgetMeetMonoid, use min insteadgetJoinMonoid, use max insteadgetDualMonoid, use reverse insteadgetStructMonoid, use struct insteadgetTupleMonoid, use tuple insteadNonEmptyArray
fold, use concatAll insteadprependToAll, use prependAll insteadOption
getApplySemigroup in favour of Apply.getApplySemigroupgetApplyMonoid in favour of Applicative.getApplicativeMonoidOrd
ordBoolean, use boolean.Ord insteadordString, use string.Ord insteadordNumber, use number.Ord insteadordDate, use Date.Ord insteadgetDualOrd, use reverse insteadgetTupleOrd, use tuple insteadOrdering
eqOrdering, use Eq insteadmonoidOrdering, use Monoid insteadRing
getFunctionRing, use function.getRing insteadReader
getSemigroup in favour of Apply.getApplySemigroupgetMonoid in favour of Applicative.getApplicativeMonoidReaderEither
getApplySemigroup in favour of Apply.getApplySemigroupgetApplyMonoid in favour of Applicative.getApplicativeMonoidgetSemigroup in favour of Apply.getApplySemigroupgetReaderValidation, use getApplicativeReaderValidation and getAltReaderValidation insteadlocal, Use Reader's local insteadReaderTask
getSemigroup in favour of Apply.getApplySemigroupgetMonoid in favour of Applicative.getApplicativeMonoidrunlocal, Use Reader's local insteadReaderTaskEither
getApplySemigroup in favour of Apply.getApplySemigroupgetApplyMonoid in favour of Applicative.getApplicativeMonoidgetSemigroup in favour of Apply.getApplySemigroupgetReaderTaskValidation, use getApplicativeReaderTaskValidation and getAltReaderTaskValidation insteadrunlocal, Use Reader's local insteadReaderTaskEither
runReadonlyArray
prependToAll, use prependAll insteadReadonlyNonEmptyArray
fold, use concatAll insteadprependToAll, use prependAll insteadReadonlyRecord
hasOwnProperty, use has insteadRecord
hasOwnProperty, use has insteadRing
getTupleRing, use tuple insteadSemigroup
semigroupAll, use boolean.SemigroupAll insteadsemigroupAny, use boolean.SemigroupAny insteadgetFunctionSemigroup, use function.getSemigroup insteadsemigroupString, use string.Semigroup insteadsemigroupSum, use number.SemigroupSum insteadsemigroupProduct, use number.SemigroupProduct insteadfold, use concatAll insteadgetIntercalateSemigroup, use intercalate insteadgetMeetSemigroup, use min insteadgetJoinSemigroup, use max insteadgetDualSemigroup, use reverse insteadgetStructSemigroup, use struct insteadgetTupleSemigroup, use tuple insteadgetFirstSemigroup, use first insteadgetLastSemigroup, use last insteadgetObjectSemigroup, use assign insteadShow
showBoolean, use boolean.Show insteadshowString, use string.Show insteadshowNumber, use number.Show insteadgetStructShow, use struct insteadgetTupleShow, use tuple insteadTask
getSemigroup in favour of Apply.getApplySemigroupgetMonoid in favour of Applicative.getApplicativeMonoidfromTaskTaskEither
getApplySemigroup in favour of Apply.getApplySemigroupgetApplyMonoid in favour of Applicative.getApplicativeMonoidgetSemigroup in favour of Apply.getApplySemigroupgetTaskValidation, use getApplicativeTaskValidation and getAltTaskValidation insteadTaskThese
functorTaskThese instance in favour of FunctorbifunctorTaskThese instance in favour of BifunctorgetSemigroup in favour of Apply.getApplySemigrouptoTuple in favour of toTuple2These
toTuple in favour of toTuple2Traversable
getTraversableComposition, use traverse, sequence helpers insteadPointed type classFromEither type classFromIO type classFromTask type classTaskOption modulestring modulenumber moduleSeparated module (@YBogomolov)Json moduleApply
ap helperapS helperapFirst helperapSecond helpergetApplySemigroupApplicative
getApplicativeMonoidArray
Pointed instanceApply instancematchLeft aliasmatchRight aliasboolean
foldWmatch aliasmatchW aliasEq instanceBooleanAlgebra instanceSemigroupAll instanceSemigroupAny instanceMonoidAll instanceMonoidAny instanceOrd instanceShow instanceBooleanAlgebra
reverseChain
bind helperchainFirst helperCompactable
compact helperseparate helperseparated constructorDate
Eq instanceOrd instanceFilterable
filter helperfilterMap helperpartition helperpartitionMap helperFoldable
reduce helperfoldaMap helperreduceRight helperFoldableWithIndex
reduceWithIndex helperfoldaMapWithIndex helperreduceRightWithIndex helperfunction
getBooleanAlgebragetSemigroupgetMonoidgetSemiringgetRinggetEndomorphismMonoidFunctor
map helperbindTo helperflap derivable, #1393 (@williamareynolds)FunctorWithIndex
mapWithIndex helperEither
Pointed instanceApply instancegetCompactablegetFilterableFromEither instancetoUnion, closes #1362foldWmatch aliasmatchW aliasorElseWtryCatchKfromOptionKchainOptionKEitherT
getEitherM into separated functionsEq
getSemigroupstructtupleIdentity
Pointed instanceApply instanceIO
Pointed instanceApply instanceFromIO instanceIOEither
Pointed instancegetCompactableFromIO instanceFromEither instancetryCatchK combinatortoUnionfoldWmatch aliasmatchW aliasorElseWfromOptionKchainOptionKMonoid
concatAllminmaxreversestructtupleNonEmptyArray
Pointed instanceApply instanceconcatAllOption
Pointed instanceApply instancefoldWmatch aliasmatchW aliastryCatchKOptionT
getOptionM into separated functionsOrd
equalsDefaultreversetupleOrdering
Eq instanceSemigroup instanceMonoid instanceRandom
randomElemReader
Pointed instanceApply instanceReaderT
getReaderM into separated functionsReaderEither
Pointed instanceApply instanceFromEither instancegetCompactablegetFilterabletoUnionfoldWmatch aliasmatchW aliasorElseWfromOptionKchainOptionKReaderTask
Pointed instanceApplyPar instanceApplySeq instanceFromIO instanceFromTask instancetraverseSeqArrayWithIndextraverseSeqArraysequenceSeqArrayReaderTaskEither
Pointed instanceApplyPar instanceApplySeq instanceFromIO instanceFromTask instanceFromEither instancegetCompactablegetFilterabletoUnionfoldWmatch aliasmatchW aliasorElseWfromOptionKchainOptionKReadonlyArray
Pointed instanceApply instancegetSemigroupmatchLeft instancematchRight instanceReadonlyMap
filterWithIndex combinatorfilterMapWithIndex combinatorpartitionWithIndex combinatorpartitionMapWithIndex combinatorgetFunctorWithIndexgetFoldablegetFoldableWithIndexgetTraversablegetTraversableWithIndexReadonlyNonEmptyArray
Pointed instanceApply instanceconcatAllRing
tupleSemigroup
constantconcatAllintercalateminmaxstructtuplefirstlastassignShow
structtupleState
Pointed instanceApply instanceStateT
getStateM into separated functionsStateReaderTaskEither
Pointed instanceApply instanceMonad instanceFromIO instanceFromTask instanceFromEither instancefromOptionKchainOptionKTask
Pointed instanceApplyPar instanceApplySeq instanceFromIO instanceFromTask instanceTaskEither
Pointed instanceApplyPar instanceApplySeq instancegetCompactableFromIO instanceFromTask instanceFromEither instancetoUnionfoldWmatch aliasmatchW aliasorElseWfromOptionKchainOptionKTaskThese
Functor instancePointed instanceBifunctor instancetoTuple2getApplyFromIO instanceFromTask instancefromEither functionFromEither instancegetChain instancefoldWmatch aliasmatchW aliasfromOptionfromOptionKfromPredicateThese
Pointed instanceof functiongetApplytoTuple2FromEither instancefromOption constructorfoldWmatch aliasmatchW aliasfromOptionKTheseT
getTheseM into separated functionsTraversable
traverse helpersequence helperTree
Pointed instanceApply instanceWriter
getPointedgetApplygetApplicativegetChainArray, ReadonlyArray: change scanLeft and scanRight to return NonEmptyArray, ReadonlyNonEmptyArray, #1391 (@willheslam)
Array, ReadonlyArray: change scanLeft and scanRight to return NonEmptyArray, ReadonlyNonEmptyArray, #1391 (@willheslam)fix filter overloads in NonEmptyArray / ReadonlyNonEmptyArray, closes #1388 (@gcanti)
filter overloads in NonEmptyArray / ReadonlyNonEmptyArray, closes #1388 (@gcanti)add more /*#__PURE__*/ comments to improve tree shaking, #1370 (@OliverJAsh)
/*#__PURE__*/ comments to improve tree shaking, #1370 (@OliverJAsh)add more /*#__PURE__*/ comments to improve tree shaking, #1368 (@OliverJAsh)
/*#__PURE__*/ comments to improve tree shaking, #1368 (@OliverJAsh)sort: return the input when length <= 1, closes #1357 (@gcanti)
Array / ReadonlyArray
sort: return the input when length <= 1, closes #1357 (@gcanti)uniq: return the input when length <= 1 (@gcanti)deprecate mapNullable in favour of chainNullableK (@gcanti)
New Feature
Array
altW (@gcanti)intersperse (@marcotoniut)prependToAll (@marcotoniut)every (@gcanti)some (@gcanti)Do (@gcanti)Either
altW (@gcanti)fromNullableK (@gcanti)chainNullableK (@gcanti)traverseArrayWithIndex (@mohaalak @iamomiid)traverseArray (@mohaalak @iamomiid)sequenceArray (@mohaalak @iamomiid)Do (@gcanti)filterOrElseW (@gcanti)Identity
altW (@gcanti)Do (@gcanti)IO
traverseArrayWithIndex (@mohaalak @iamomiid)traverseArray (@mohaalak @iamomiid)sequenceArray (@mohaalak @iamomiid)Do (@gcanti)IOEither
altW (@gcanti)traverseArrayWithIndex (@mohaalak @iamomiid)traverseArray (@mohaalak @iamomiid)sequenceArray (@mohaalak @iamomiid)traverseSeqArrayWithIndex (@mohaalak @iamomiid)traverseSeqArray (@mohaalak @iamomiid)sequenceSeqArray (@mohaalak @iamomiid)Do (@gcanti)filterOrElseW (@gcanti)NonEmptyArray
altW (@gcanti)uncons (@marcotoniut)unsnoc (@marcotoniut)intersperse (@marcotoniut)prependToAll (@marcotoniut)Do (@gcanti)Option
altW (@gcanti)fromNullableK (@gcanti)chainNullableK (@gcanti)traverseArrayWithIndex (@mohaalak @iamomiid)traverseArray (@mohaalak @iamomiid)sequenceArray (@mohaalak @iamomiid)Do (@gcanti)Reader
traverseArrayWithIndex (@mohaalak @iamomiid)traverseArray (@mohaalak @iamomiid)sequenceArray (@mohaalak @iamomiid)Do (@gcanti)ReaderEither
altW (@gcanti)traverseArrayWithIndex (@mohaalak @iamomiid)traverseArray (@mohaalak @iamomiid)sequenceArray (@mohaalak @iamomiid)Do (@gcanti)filterOrElseW (@gcanti)ReaderTask
traverseArrayWithIndex (@mohaalak @iamomiid)traverseArray (@mohaalak @iamomiid)sequenceArray (@mohaalak @iamomiid)traverseSeqArrayWithIndex (@mohaalak @iamomiid)traverseSeqArray (@mohaalak @iamomiid)sequenceSeqArray (@mohaalak @iamomiid)Do (@gcanti)ReaderTaskEither
altW (@gcanti)traverseArrayWithIndex (@mohaalak @iamomiid)traverseArray (@mohaalak @iamomiid)sequenceArray (@mohaalak @iamomiid)traverseSeqArrayWithIndex (@mohaalak @iamomiid)traverseSeqArray (@mohaalak @iamomiid)sequenceSeqArray (@mohaalak @iamomiid)Do (@gcanti)filterOrElseW (@gcanti)ReadonlyArray
altW (@gcanti)intersperse (@marcotoniut)prependToAll (@marcotoniut)every (@gcanti)some (@gcanti)Do (@gcanti)ReadonlyNonEmptyArray
altW (@gcanti)uncons (@marcotoniut)unsnoc (@marcotoniut)intersperse (@marcotoniut)prependToAll (@marcotoniut)Do (@gcanti)State
traverseArrayWithIndex (@mohaalak @iamomiid)traverseArray (@mohaalak @iamomiid)sequenceArray (@mohaalak @iamomiid)StateReaderTaskEither
altW (@gcanti)traverseArrayWithIndex (@mohaalak @iamomiid)traverseArray (@mohaalak @iamomiid)sequenceArray (@mohaalak @iamomiid)filterOrElseW (@gcanti)Task
traverseArrayWithIndex (@mohaalak @iamomiid)traverseArray (@mohaalak @iamomiid)sequenceArray (@mohaalak @iamomiid)traverseSeqArrayWithIndex (@mohaalak @iamomiid)traverseSeqArray (@mohaalak @iamomiid)sequenceSeqArray (@mohaalak @iamomiid)Do (@gcanti)TaskEither
altW (@gcanti)traverseArrayWithIndex (@mohaalak @iamomiid)traverseArray (@mohaalak @iamomiid)sequenceArray (@mohaalak @iamomiid)traverseSeqArrayWithIndex (@mohaalak @iamomiid)traverseSeqArray (@mohaalak @iamomiid)sequenceSeqArray (@mohaalak @iamomiid)Do (@gcanti)filterOrElseW (@gcanti)Tree
Do (@gcanti)Deprecation
Option
mapNullable in favour of chainNullableK (@gcanti)StateReaderTaskEither
stateReaderTaskEitherSeq because is useless, stateReaderTaskEither is already sequential (@gcanti)- Bug Fix - fix #1350 (@gcanti)
export missing of function (@gcanti)
IOEither
of function (@gcanti)ReaderEither
of function (@gcanti)deprecate Applicative in favour of ApplicativePar (@gcanti)
IOEither
ApplicativePar instance (@gcanti)ApplicativeSeq instance (@gcanti)IOEither
Applicative in favour of ApplicativePar (@gcanti)export Strong instance (@urgent)
Reader
Strong instance (@urgent)Choice instance (@gcanti)increase the supported number of arguments of pipe function (@heka1024)
groupBy change in #1286 (@gcanti)fix HKT typings duplication (which might break module augmentation)
HKT typings duplication (which might break module augmentation)deprecate foldM in favour of reduceM (@gcanti)
fp-ts modules without lib/es6 prefix, #1241 (@StefanoMagrassi)Array
apS (@gcanti)bind (@gcanti)bindTo (@gcanti)Either
apW (@gcanti)apS (@gcanti)apSW (@gcanti)bind (@gcanti)bindTo (@gcanti)bindW (@gcanti)chainFirstW, #1273 (@leemhenson)getFilterable (@gcanti)Foldable
toArray, #1272 (@newswim)reduceM (@gcanti)Identity
apS (@gcanti)bind (@gcanti)bindTo (@gcanti)IO
apS (@gcanti)bind (@gcanti)bindTo (@gcanti)IOEither
apS (@gcanti)apSW (@gcanti)bind (@gcanti)bindTo (@gcanti)bindW (@gcanti)chainFirstW, #1273 (@leemhenson)NonEmptyArray
apS (@gcanti)bind (@gcanti)bindTo (@gcanti)group signature (@gcanti)groupBy signature (@gcanti)groupSort signature (@gcanti)sort signature (@gcanti)Option
apS (@gcanti)bind (@gcanti)bindTo (@gcanti)Reader
apW (@gcanti)apS (@gcanti)apSW (@gcanti)bind (@gcanti)bindTo (@gcanti)bindW (@gcanti)ReaderEither
apS (@gcanti)apSW (@gcanti)bind (@gcanti)bindTo (@gcanti)bindW (@gcanti)chainFirstW, #1273 (@leemhenson)ReaderTask
apS (@gcanti)apSW (@gcanti)bind (@gcanti)bindTo (@gcanti)bindW (@gcanti)ReaderTaskEither
apS (@gcanti)apSW (@gcanti)bind (@gcanti)bindTo (@gcanti)bindW (@gcanti)chainFirstW, #1273 (@leemhenson)ReadonlyArray
apS (@gcanti)bind (@gcanti)bindTo (@gcanti)ReadonlyNonEmptyArray
apS (@gcanti)bind (@gcanti)bindTo (@gcanti)group signature (@gcanti)groupBy signature (@gcanti)groupSort signature (@gcanti)sort signature (@gcanti)State
apS (@gcanti)bind (@gcanti)bindTo (@gcanti)evaluate (@gcanti)execute (@gcanti)StateReaderTaskEither
apS (@gcanti)apSW (@gcanti)bind (@gcanti)bindTo (@gcanti)bindW (@gcanti)chainFirstW, #1273 (@leemhenson)evaluate (@gcanti)execute (@gcanti)Task
apS (@gcanti)bind (@gcanti)bindTo (@gcanti)TaskEither
apS (@gcanti)apSW (@gcanti)bind (@gcanti)bindTo (@gcanti)bindW (@gcanti)chainFirstW, #1273 (@leemhenson)Tree
apS (@gcanti)bind (@gcanti)bindTo (@gcanti)Writer
evaluate (@gcanti)execute (@gcanti)Foldable
foldM in favour of reduceM (@gcanti)State
evalState in favour of evaluate (@gcanti)execState in favour of execute (@gcanti)StateReaderTaskEither
evalState in favour of evaluate (@gcanti)execState in favour of execute (@gcanti)Writer
evalWriter in favour of evaluate (@gcanti)execWriter in favour of execute (@gcanti)fix FunctorWithIndex instance name (@gcanti)
ReadonlyArray
FunctorWithIndex instance name (@gcanti)Functor instance name (@gcanti)Array
sort signature (@gcanti)sortBy signature (@gcanti)Map
mapWithIndex (@gcanti)ReadonlyArray
sort signature (@gcanti)sortBy signature (@gcanti)ReadonlyMap
mapWithIndex (@gcanti)fix ap implementation in getMonad function (@gcanti)
These
ap implementation in getMonad function (@gcanti)function
hole (type hole simulation) (@gcanti)Array
chainWithIndex, #1256 (@OliverJAsh)Functor instance (@gcanti)FunctorWithIndex instance (@gcanti)Applicative instance (@gcanti)Monad instance (@gcanti)Unfoldable instance (@gcanti)Alt instance (@gcanti)Alternative instance (@gcanti)Extend instance (@gcanti)Compactable instance (@gcanti)Filterable instance (@gcanti)FilterableWithIndex instance (@gcanti)Foldable instance (@gcanti)FoldableWithIndex instance (@gcanti)Traversable instance (@gcanti)TraversableWithIndex instance (@gcanti)Witherable instance (@gcanti)Const
Functor instance (@gcanti)Contravariant instance (@gcanti)Bifunctor instance (@gcanti)Either
getApplicativeValidation constrained instance (@gcanti)getAltValidation constrained instance (@gcanti)Functor instance (@gcanti)Applicative instance (@gcanti)Monad instance (@gcanti)Foldable instance (@gcanti)Traversable instance (@gcanti)Bifunctor instance (@gcanti)Alt instance (@gcanti)Extend instance (@gcanti)ChainRec instance (@gcanti)MonadThrow instance (@gcanti)Eq
Contravariant instance (@gcanti)Identity
Functor instance (@gcanti)Applicative instance (@gcanti)Monad instance (@gcanti)Foldable instance (@gcanti)Traversable instance (@gcanti)Alt instance (@gcanti)Comonad instance (@gcanti)ChainRec instance (@gcanti)IO
Functor instance (@gcanti)Applicative instance (@gcanti)Monad instance (@gcanti)MonadIO instance (@gcanti)ChainRec instance (@gcanti)IOEither
getApplicativeIOValidation constrained instance (@gcanti)getAltIOValidation constrained instance (@gcanti)Functor instance (@gcanti)Applicative instance (@gcanti)Monad instance (@gcanti)Bifunctor instance (@gcanti)Alt instance (@gcanti)MonadIO instance (@gcanti)MonadThrow instance (@gcanti)Map
Functor instance (@gcanti)Compactable instance (@gcanti)Filterable instance (@gcanti)NonEmptyArray
Functor instance (@gcanti)FunctorWithIndex instance (@gcanti)Applicative instance (@gcanti)Monad instance (@gcanti)Foldable instance (@gcanti)FoldableWithIndex instance (@gcanti)Traversable instance (@gcanti)TraversableWithIndex instance (@gcanti)Alt instance (@gcanti)Comonad instance (@gcanti)Option
Functor instance (@gcanti)Applicativ instance (@gcanti)Monad instance (@gcanti)Foldable instance (@gcanti)Alt instance (@gcanti)Alternative instance (@gcanti)Extend instance (@gcanti)Compactable instance (@gcanti)Filterable instance (@gcanti)Traversable instance (@gcanti)Witherable instance (@gcanti)MonadThrow instance (@gcanti)Ord
ContravariantOrd instance (@gcanti)Reader
Functor instance (@gcanti)Applicative instance (@gcanti)Monad instance (@gcanti)Profunctor instance (@gcanti)Category instance (@gcanti)String instance (@gcanti)Choice instance (@gcanti)ReaderEither
getApplicativeReaderValidation constrained instance (@gcanti)getAltReaderValidation constrained instance (@gcanti)Functor instance (@gcanti)Applicative instance (@gcanti)Monad instance (@gcanti)Bifunctor instance (@gcanti)Alt instance (@gcanti)MonadThrow instance (@gcanti)ReaderTask
Functor instance (@gcanti)ApplicativePar instance (@gcanti)ApplicativeSeq instance (@gcanti)ReaderTaskEither
getApplicativeReaderTaskValidation constrained instance (@gcanti)getAltReaderTaskValidation constrained instance (@gcanti)Functor instance (@gcanti)ApplicativePar instance (@gcanti)ApplicativeSeq instance (@gcanti)Bifunctor instance (@gcanti)Alt instance (@gcanti)ReadonlyArray
chainWithIndex, #1256 (@OliverJAsh)Functor instance (@gcanti)FunctorWithIndex instance (@gcanti)Applicative instance (@gcanti)Monad instance (@gcanti)Unfoldable instance (@gcanti)Alt instance (@gcanti)Alternative instance (@gcanti)Extend instance (@gcanti)Compactable instance (@gcanti)Filterable instance (@gcanti)FilterableWithIndex instance (@gcanti)Foldable instance (@gcanti)FoldableWithIndex instance (@gcanti)Traversable instance (@gcanti)TraversableWithIndex instance (@gcanti)Witherable instance (@gcanti)ReadonlyMap
Functor instance (@gcanti)Compactable instance (@gcanti)Filterable instance (@gcanti)ReadonlyNonEmptyArray
Functor instance (@gcanti)FunctorWithIndex instance (@gcanti)Applicative instance (@gcanti)Monad instance (@gcanti)Foldable instance (@gcanti)FoldableWithIndex instance (@gcanti)Traversable instance (@gcanti)TraversableWithIndex instance (@gcanti)Alt instance (@gcanti)Comonad instance (@gcanti)ReadonlyRecord
Functor instance (@gcanti)FunctorWithIndex instance (@gcanti)Foldable instance (@gcanti)Compactable instance (@gcanti)Filterable instance (@gcanti)FilterableWithIndex instance (@gcanti)Traversable instance (@gcanti)TraversableWithIndex instance (@gcanti)Witherable instance (@gcanti)ReadonlyTuple
Functor instance (@gcanti)Bifunctor instance (@gcanti)Semigroupoid instance (@gcanti)Comonad instance (@gcanti)Foldable instance (@gcanti)Traversable instance (@gcanti)Record
Functor instance (@gcanti)FunctorWithIndex instance (@gcanti)Foldable instance (@gcanti)Compactable instance (@gcanti)Filterable instance (@gcanti)FilterableWithIndex instance (@gcanti)Traversable instance (@gcanti)TraversableWithIndex instance (@gcanti)Witherable instance (@gcanti)State
Functor instance (@gcanti)Applicative instance (@gcanti)Monad instance (@gcanti)Store
Functor instance (@gcanti)Comonad instance (@gcanti)StateReaderTaskEither
Functor instance (@gcanti)Applicative instance (@gcanti)Bifunctor instance (@gcanti)Alt instance (@gcanti)Task
Functor instance (@gcanti)ApplicativePar instance (@gcanti)ApplicativeSeq instance (@gcanti)TaskEither
getApplicativeTaskValidation constrained instance (@gcanti)getAltTaskValidation constrained instance (@gcanti)Functor instance (@gcanti)ApplicativePar instance (@gcanti)ApplicativeSeq instance (@gcanti)Bifunctor instance (@gcanti)Alt instance (@gcanti)TaskThese
Functor instance (@gcanti)Bifunctor instance (@gcanti)These
getApplicative constrained instance (@gcanti)Functor instance (@gcanti)Bifunctor instance (@gcanti)Foldable instance (@gcanti)Traversable instance (@gcanti)Traced
traced to Functor for consistency (@gcanti)Tree
Functor instance (@gcanti)Applicative instance (@gcanti)Monad instance (@gcanti)Foldable instance (@gcanti)Traversable instance (@gcanti)Comonad instance (@gcanti)Writer
Functor instance (@gcanti)Tuple
Functor instance (@gcanti)Bifunctor instance (@gcanti)Semigroupoid instance (@gcanti)Comonad instance (@gcanti)Foldable instance (@gcanti)Traversable instance (@gcanti)refine Either.parseJSON return type, #1252 (@OliverJAsh)
Either.parseJSON return type, #1252 (@OliverJAsh)chainW to ReaderTask, #1254 (@adameier)make lookup data-last (@gcanti)
Array
unfold (@gcanti)lookup data-last (@gcanti)elem data-last (@gcanti)difference data-last (@gcanti)intersection data-last (@gcanti)union data-last (@gcanti)zip data-last (@gcanti)cons data-last (@gcanti)Map
member data-last (@gcanti)elem data-last (@gcanti)lookup data-last (@gcanti)lookupWithKey data-last (@gcanti)isSubmap data-last (@gcanti)NonEmptyArray
zip data-last (@gcanti)ReadonlyArray
unfold (@gcanti)lookup data-last (@gcanti)elem data-last (@gcanti)difference data-last (@gcanti)intersection data-last (@gcanti)union data-last (@gcanti)zip data-last (@gcanti)cons data-last (@gcanti)ReadonlyMap
member data-last (@gcanti)elem data-last (@gcanti)lookup data-last (@gcanti)lookupWithKey data-last (@gcanti)isSubmap data-last (@gcanti)ReadonlyNonEmptyArray
zip data-last (@gcanti)ReadonlyRecord
isSubrecord data-last (@gcanti)lookup data-last (@gcanti)elem data-last (@gcanti)ReadonlySet
isSubset data-last (@gcanti)elem data-last (@gcanti)union data-last (@gcanti)intersection data-last (@gcanti)difference data-last (@gcanti)Record
isSubrecord data-last (@gcanti)lookup data-last (@gcanti)elem data-last (@gcanti)Set
subset data-last (@gcanti)elem data-last (@gcanti)union data-last (@gcanti)intersection data-last (@gcanti)difference data-last (@gcanti)Semigroup
fold data-last (@gcanti)export a pipeable wither function from all modules which admit a Witherable instance (@gcanti)
wither function from all modules which admit a Witherable instance (@gcanti)wilt function from all modules which admit a Witherable instance (@gcanti)traverseWithIndex should sort the keys (@gcanti)
ReadonlyMap
traverseWithIndex should sort the keys (@gcanti)ReadonlyRecord
traverseWithIndex should sort the keys (@gcanti)change ReadonlyNonEmptyArray definition to get better type inference (@gcanti)
ReadonlyNonEmptyArray definition to get better type inference (@gcanti)pipe to function module (@gcanti)sequence from all modules which admit a Traversable instance (@gcanti)traverse function from all modules which admit a Traversable instance (@gcanti)traverseWithIndex function from all modules which admit a TraversableWithIndex instance (@gcanti)The goal of this release is to make fp-ts more "tree shaking" friendly.
The goal of this release is to make fp-ts more "tree shaking" friendly.
/*@__PURE__*/ comments to pipeables (@gcanti)/*@__PURE__*/ comments to transformers (@gcanti)pipeable.ts module imports (@gcanti)add W variants, closes #904 (@gcanti)
Const
Date
eqDate, eqMonth, eqYear (@gcanti)Either
getOrElseW (@gcanti)chainW (@gcanti)Eq
getMonoid (@gcanti)IOEither
getOrElseW (@gcanti)chainW (@gcanti)chainEitherKW (@giogonzo)Option
getOrElseW (@gcanti)Reader
chainW (@gcanti)ReaderEither
getOrElseW (@gcanti)chainW (@gcanti)chainEitherKW (@giogonzo)ReaderTaskEither
getOrElseW (@gcanti)chainW (@gcanti)chainEitherKW (@giogonzo)chainTaskEitherKW (@giogonzo)chainIOEitherKW (@giogonzo)StateReaderTaskEither
chainW (@gcanti)chainEitherKW (@giogonzo)chainTaskEitherKW (@giogonzo)chainReaderTaskEitherKW (@giogonzo)chainIOEitherKW (@giogonzo)TaskEither
getOrElseW (@gcanti)chainW (@gcanti)chainEitherKW (@giogonzo)chainIOEitherKW (@giogonzo)Tree
fold function (@gcanti)Nothing published for this version
add missing StateM2C and StateM3C (@qlonik)
StateT
StateM2C and StateM3C (@qlonik)add missing instances to getValidation (@gcanti)
Either
getValidation (@gcanti)IOEither
Bifunctor2C to Bifunctor2 in getIOValidation (@gcanti)ReaderEither
Bifunctor3C to Bifunctor3 in getReaderValidation (@gcanti)ReaderTaskEither
Bifunctor3C to Bifunctor3 in getReaderTaskValidation (@gcanti)TaskEither
Bifunctor2C to Bifunctor2 in getTaskValidation (@gcanti)Nothing published for this version
add eqStrict, closes #965 (@gcanti)
Eq
eqStrict, closes #965 (@gcanti)NonEmptyArray
fold (@vicrac)zip, zipWith and unzip, closes #1109 (@gcanti)Semigroup
getIntercalateSemigroup (@gcanti)Set
toggle (@ryota-ka)TaskEither
tryCatchK (@DenisFrezzato)These
MonadThrow instance (@gcanti)ReaderTaskEither
leftReaderTask, rightReaderTask functions (@gcanti)StateReaderTaskEither
Bifunctor, Alt instances (@gcanti)ReadonlyArray module (@gcanti)ReadonlyNonEmptyArray module (@gcanti)ReadonlySet module (@gcanti)ReadonlyMap module (@gcanti)ReadonlyRecord module (@gcanti)ReadonlyTuple module (@gcanti)Nothing published for this version
add missing MonadIO4 (@mlegenhausen)
MonadIO4 (@mlegenhausen)MonadTask4 (@mlegenhausen)StateReaderTaskEither
MonadTask4 instance (@mlegenhausen)filterOrElse, fromPredicate combinators (@mlegenhausen)don't set target: es6 in tsconfig.build-es6.json, fix #1110 (@gcanti)
target: es6 in tsconfig.build-es6.json, fix #1110 (@gcanti)fix Invariant definition (@gcanti)
Invariant definition (@gcanti)add overloading to group managing non empty arrays, closes #831 (@gcanti)
NonEmptyArray
group managing non empty arrays, closes #831 (@gcanti)foldMap and foldMapWithIndex now require a Semigroup instead of a Monoid (@gcanti)deprecate getSemigroup in favor of getMonoid (@gcanti)
WriterT module, closes #1050 (@gcanti)TheseT module (@gcanti)TaskThese module (@gcanti)function
tupled, untupled functions, closes #1062 (@gcanti)IOEither
fromEitherK, chainEitherK (@gcanti)ReaderEither
fromEitherK, chainEitherK (@gcanti)ReaderTask
run (@gcanti)fromIOK, chainIOK, fromTaskK, chainTaskK (@gcanti)ReaderTaskEither
fromEitherK, chainEitherK, fromIOEitherK, chainIOEitherK, fromTaskEitherK, chainTaskEitherK (@gcanti)These
swap (@gcanti)Ord
getMonoid (@vicrac)Ordering
monoidOrdering (@gcanti)StateReaderTaskEither
fromEitherK, chainEitherK, fromIOEitherK, chainIOEitherK, fromTaskEitherK, chainTaskEitherK, fromReaderTaskEitherK, chainReaderTaskEitherK (@gcanti)Task
fromIOK, chainIOK (@gcanti)TaskEither
fromEitherK, chainEitherK, fromIOEitherK, chainIOEitherK (@gcanti)Ord
getSemigroup in favor of getMonoid (@gcanti)Ordering
semigroupOrdering in favor of monoidOrdering (@gcanti)Promise.race in Task.getRaceMonoid (@gcanti)fix sortBy failing on empty list of ords, #1046 (@vicrac)
Array.ts
sortBy failing on empty list of ords, #1046 (@vicrac)add ReaderTask module (@sledorze)
ReaderTask module (@sledorze)ReaderTaskEither
getReaderTaskValidation (@sledorze)ReaderEither
getReaderValidation (@gcanti)TaskEither
getTaskValidation (@gcanti)IOEither
getIOValidation (@gcanti)add boolean module, closes #930 (@giogonzo)
boolean module, closes #930 (@giogonzo)ChainRec instance to IO (@gcanti)NonEmptyArray
init (@steida)Alt instance (@gcanti)fromNullable now uses NonNullable in its return type, fixes #1004 (@gcanti)
fromNullable now uses NonNullable in its return type, fixes #1004 (@gcanti)add sequenceT and sequenceS overload signatures for Kind4, fixes #969 (@pfgray)
sequenceT and sequenceS overload signatures for Kind4, fixes #969 (@pfgray)add constrained Filterable instance to IOEither, TaskEither, #959 (@giogonzo)
Filterable instance to IOEither, TaskEither, #959 (@giogonzo)fix PipeableApply2C definition (@gcanti)
PipeableApply2C definition (@gcanti)Your coding agent can read these notes before it upgrades. Set up the MCP server →