Tags:
- [New Feature]
- [Bug Fix]
- [Breaking Change]
- [Documentation]
- [Internal]
- [Polish]
- [Experimental]
Note: Gaps between patch versions are faulty/broken releases. Note: A feature tagged as Experimental is in a high state of flux, you're at risk of it changing without notice.
- Bug Fix
- add missing
readonly
modifiers (@gcanti)BoundedJoinSemilattice
BoundedMeetSemilattice
HeytingAlgebra
JoinSemilattice
MeetSemilattice
- handle
null
,undefined
infunction.toString
(@gcanti) - add overloadings to
Free.foldFree
, fix #470 (@gcanti)
- add missing
- Polish
Reader.local
,ReaderTaskEither.local
should be able to change the environment type (@gcanti)- add
Reader.prototype.local
,ReaderTaskEither.prototype.local
(@gcanti)
- New Feature
- add
NonEmptyArray.prototype.last
(@raveclassic) - add
IOEither
module (@leemhenson) - add
orElse
method toEither
,Identity
,Option
(@raveclassic) - add
Alt
instance toTaskEither
(@gcanti) - add
NonEmptyArray.prototype.sort
(@raveclassic) - add
TaskEither.fromIOEither
(@gcanti) - add
applyFirst
method toIO
,Task
,IOEither
,TaskEither
(@gcanti) - move
ReaderTaskEither
from examples intosrc
(@leemhenson) - add
NonEmptyArray.prototype.reverse
(@raveclassic) - add
TaskEither.fromPredicate
(@leemhenson) - add
Tree
module (@gcanti) - make
Either.filterOrElseL
more general (@gcanti) - add
Either.refineOrElse
,Either.refineOrElseL
(@gcanti) - add
Either.fromRefinement
(@gcanti)
- add
- Bug Fix
- handle undefined errors in callback of
TaskEither.taskify
(@dmechas) - fix overloading typings of
TaskEither.taskify
(@gcanti)
- handle undefined errors in callback of
- Internal
- make
Writer.prototype.map
lazy (@gcanti)
- make
- Documentation
- handle
example
andlink
tags (@gcanti)
- handle
- New Feature
- Allow the usage of a custom
Semigroup
forStrMap.getMonoid
(@mlegenhausen) - add
applySecond
method toIO
,Task
,TaskEither
, closes #418 (@gcanti) - add
TaskEither.fromIO
(@gcanti) - add
Apply.sequenceT
(@raveclassic) - add
TaskEither.taskify
, utility to convert callback-based node APIs, closes #422 (@gcanti)
- Allow the usage of a custom
- Bug Fix
- fix semigroup usage in
Tuple.ap
implementation (@gcanti)
- fix semigroup usage in
- New Feature
- add
getDictionarySemigroup
,getObjectSemigroup
toSemigroup
(@raveclassic) - add
getDictionaryMonoid
toMonoid
(@raveclassic) - add
Setoid.setoidDate
andOrd.ordDate
(@mlegenhausen) - add
StrMap#filter
(@mlegenhausen) - add
Apply.getSemigroup
,Applicative.getMonoid
(@gcanti) - add lattice typeclass hierarchy, closes #412 (@gcanti)
BooleanAlgebra
BoundedDistributiveLattice
BoundedJoinSemilattice
BoundedLattice
BoundedMeetSemilattice
DistributiveLattice
HeytingAlgebra
JoinSemilattice
MeetSemilattice
- add
- Internal
- add more
Travserable.sequence
overloadings (@gcanti) - upgrade to [email protected] (@gcanti)
- use
getObjectSemigroup
inStrMap.concat
(@gcanti)
- add more
- New Feature
- add
Array.uniq
(@alex-ketch) - add
NonEmptyArray.prototype.min
andNonEmptyArray.prototype.max
(@raveclassic) - add
refine
method toOption
, closes #396 (@wmaurer) - add
Ord.getDualOrd
(@gcanti) - add support for
Monad2C
andMonad3C
toOptionT
, closes #379 (@gcanti) - add
TaskEither.fromLeft
(@gcanti) - add
listen
,pass
,listens
,censor
toWriter
(@gcanti) - add
Option.fromRefinement
(@gcanti) - add
Array.sortBy
,Array.sortBy1
(@gcanti) - add
Either.fromOptionL
, closes #384 (@gcanti) - add
Either.filterOrElse
,Either.filterOrElseL
, closes #382 (@gcanti)
- add
- Bug Fix
- sort keys in
StrMap.reduce
(@gcanti)
- sort keys in
- Internal
- added rimraf and updated npm scripts (@wmaurer)
- upgrade to [email protected], [email protected] (@gcanti)
- add issue template (@gcanti)
- Polish
- optimize
Semigroup.fold
(@gcanti)
- optimize
- New Feature
- Make
TaskEither
an instance ofBiFunctor
(@teves-castro) - add
EitherT.bimap
(@teves-castro) - add
partitionMap
toSet
(@sledorze) - add
getOrd
toOption
(@sledorze) - add
partition
toSet
(@sledorze) - add
contramap
toSetoid
(@sledorze) - add
getOrd
toArray
(@sledorze) - add
chain
toSet
(@sledorze) - add
map
toSet
(@sledorze) - add
fromArray
toSet
(@sledorze) - add
StateT.fromState
(@gcanti) - add
StateT.liftF
(@gcanti) - add
ReaderT.fromReader
(@gcanti)
- Make
- Bug Fix
- fix
Alt
instance ofValidation
(@sledorze) - fix
EitherT.chain
signature (@gcanti) - use
Type*
inEitherT1
,EitherT2
(@gcanti) - use
Type*
inStateT1
,StateT2
(@gcanti) - use
Type*
inReaderT1
,ReaderT2
(@gcanti) - Add
readonly
modifier to type classes properties (@gcanti)
- fix
- Internal
- make 'Set.difference' do less work (@sledorze)
- remove unecessary closure creation in
lefts
,rights
andmapOption
(@sledorze) - remove unnecessary closures (mainly
fold
s) (@sledorze) - remove closure creation of Option 'ap' function (@sledorze)
- add
URIS3
overloadings toStateT
(@gcanti) - add
URIS3
overloadings toReaderT
(@gcanti) - use definite assignement assertion for phantom fields (@gcanti)
- upgrade to [email protected] (@gcanti)
- New Feature
- add
scanLeft
,scanRight
(@PaNaVTEC) - add an optional
onerror
argument toEither.tryCatch
, fix #323 (@gcanti)
- add
- Bug Fix
Either.tryCatch
now refines the error (@gcanti)
- Docs
- Option, alt method (@piq9117)
- add laws for
Setoid
,Ord
,Functor
,Apply
,Applicative
,Chain
,Monad
,Alt
,Alternative
,Plus
(@gcanti)
- Internal
- upgrade to
[email protected]
(@gcanti)
- upgrade to
- Bug Fix
- add phantom fields to curried type classes, fix #316 (@gcanti)
- fix
Unfoldable.replicateA
signatures (@gcanti)
- Internal
- optimize Foldable.oneOf (@gcanti)
- optimize Foldable.traverse_ (@gcanti)
- optimize Foldable.sequence_ (@gcanti)
- optimize Foldable.foldr (@gcanti)
- Breaking Change
- see gcanti#312 (@gcanti)
- New Feature
Validation
: addgetOrElse
,getOrElseValue
, closes #278 (@gcanti)- add
Functor2
,Functor3
,Apply2
,Apply3
,Applicative2
,Applicative3
,Chain2
,Chain3
,Monad2
,Monad3
in order to better support MTL style (@gcanti)
- Bug Fix
- Flow: reverse order of overloadings in curry declaration, fix #299 (@gcanti)
Set
: fixunion
/insert
/toArray
/reduce
definitions (@gcanti)
- Experimental
Validation
: addchain
(@gcanti)
- Internal
- fix typescript@next errors (@gcanti)
- Documentation
- add
StateTaskEither
,TaskOption
examples (@gcanti)
- add
- New Feature
- Ordering: add fromNumber, toNumber (@gcanti)
- function: add unsafeCoerce (@gcanti)
- add Set module, closes #161 (@gcanti)
- New Feature
Array
: addrotate
(@gcanti)- add some
Foldable
functions (@gcanti)minimum
maximum
sum
product
foldM
oneOf
elem
find
Option
: addtryCatch
(@gcanti)Ring
: addgetProductRing
(@gcanti)Setoid
: addgetProductSetoid
(@gcanti)Ord
: addgetProductOrd
(@gcanti)
- Internal
- perf optimizations (@sledorze, @gcanti)
- travis: use node 8 (@gcanti)
- Bug Fix
- Flow: use
$NonMaybeType
forfromNullable
andmapNullable
(@gcanti)
- Flow: use
- New Feature
- Array: add
getSemigroup
/getMonoid
, fix #272 (@gcanti) - Setoid: add
getRecordSetoid
(@gcanti) - add missing
ap_
methods (Reader, State, Writer) (@gcanti) - type
is*
methods as type guards (Option, Either, Validation, These) (@gcanti)
- Array: add
- Experimental
- add Flowtype support (@gcanti)
- Polish
- Correct
ap_
parameter name (@OliverJAsh) - update Prettier version (@gcanti)
- fix
getRecordSemigroup
signature (@gcanti) - fix
getRecordMonoid
signature (@gcanti) - format markdown files with prettier (@gcanti)
- Correct
- New Feature
- move semigroup methods from Monoid.ts to Semigroup.ts (@valery-paschenkov)
- New Feature
- add
function.constNull
andfunction.constUndefined
(@raveclassic)
- add
- Breaking Change
- upgrade to latest TypeScript (2.6.1), fix #244 (@gcanti)
- New Feature
Array
: addfindFirst
andfindLast
functions (@chasent)Option
: addgetOrElseValue
,filter
,mapNullable
(@raveclassic)Either
: addgetOrElseValue
(@raveclassic)Either
: addfromNullable
(@gcanti)
- Bug Fix
Either
:equals
now accepts aSetoid<L>
other thanSetoid<A>
, fix #247 (@gcanti)Validation
:equals
now accepts aSetoid<L>
other thanSetoid<A>
, fix #247 (@gcanti)
- New Feature
- add
Invariant
(@gcanti) Semigroup
: addgetRecordSemigroup
,getRecordMonoid
,getMeetSemigroup
,getJoinSemigroup
(@gcanti)Ord
: addgetSemigroup
,fromCompare
,contramap
(@gcanti)Option
: addtoUndefined
method (@vegansk)These
: addgetMonad
(@gcanti)Foldable
: addfold
(@gcanti)- add
TaskEither
(@gcanti) Validation
: addfromEither
(@gcanti)Task
: addfromIO
(@gcanti)Either
: pass value togetOrElse
(@jiayihu)Array
: addspan
function (@gcanti)
- add
- Bug Fix
Array
: fixtakeWhile
,dropWhile
(@gcanti)
- Documentation
- add
Moore
machine example (@gcanti) - add MTL style example (@gcanti)
- starting API documentation (@gcanti)
- add
- Internal
- fix
Semigroupoid
definition (@gcanti)
- fix
- Polish
Ordering
: shortenorderingSemigroup
definition (@gcanti)Task
: prefer{}
toany
, fix #231 (@OliverJAsh)- upgrade to
[email protected]
(@gcanti) These
: fixfold
andbimap
definitions (@gcanti)- fix
ArrayOption
example (@gcanti) State
: removeEndomorphism
type alias (@gcanti)Monoidal
: useliftA2
(@gcanti)
- Bug Fix
- fixed EitherT to only run code on the left once, closes #219 (@nfma)
- fixed OptionT to only run code on none once (@gcanti)
- Breaking Change
- migrate to curried APIs when possible (@raveclassic, @gcanti)
- remove useless static
of
s (@gcanti)
- New Feature
- Array: add zip and zipWith (@gcanti)
- Monoid: add getArrayMonoid (@gcanti)
- Tuple
- add toString (@gcanti)
- add getApplicative (@gcanti)
- add getChainRec (@gcanti)
- Setoid: add getArraySetoid (@gcanti)
- Bug fix
- Store
- fix extend implementation (@gcanti)
- fix toString (@gcanti)
- Store
- Polish
- Plus: remove any from signatures (@gcanti)
- New Feature
- add endomorphism monoid, fix #189 (@gcanti)
- add a default implementation of
foldr
usingfoldMap
(@gcanti) - add
insert
,remove
andpop
toStrMap
(@gcanti) - improve
voidLeft
,voidRight
type inference, fix #191 (@gcanti)
- Bug Fix
- StrMap.size returns a wrong number of key/value pairs, fix #186 (@gcanti)
- Documentation
- start book "fp-ts by examples"
- New Feature
- add
contains
,isNone
,isSome
,exists
methods toOption
(@alexandervanhecke) - add
Exception
module (@gcanti) - add
Pair
module (@gcanti) - add
Trace
module (@gcanti) - add
IxMonad
module (@gcanti) - add
IxIO
module (@gcanti) - add
Either.fromOption
(@gcanti)
- add
- Documentation
- add
StateT
example (@gcanti) - add
IxIO
example (@gcanti)
- add
- New Feature
- add type-level dictionaries in order to reduce the number of overloadings (@gcanti)
- add typechecks to the type-level HKT dictionary (@SimonMeskens)
- add Task.tryCatch, closes #159 (@gcanti)
- use the bottom
never
type for none, closes #160 (@gcanti) - add Random module (@gcanti)
- add Console module (@gcanti)
- add FantasyFilterable (@SimonMeskens)
- add FantasyWitherable (@SimonMeskens)
- Documentation
- add ReaderIO example (@gcanti)
- add EitherOption example (@gcanti)
- Polish
- TaskEither: rename fromPromise to tryCatch (@gcanti)
- Internal
- add fix-prettier task (@gcanti)
- remove typings-checker (doesn’t work with ts 2.4.1) (@gcanti)
- Breaking Change
- Tuple (wrapped)
- Dictionary (wrapped, renamed to StrMap)
- changed
- Applicative.getCompositionApplicative (also renamed to getApplicativeComposition)
- Foldable.getCompositionFoldable (also renamed to getFoldableComposition)
- Functor.getCompositionFunctor (also renamed to getFunctorComposition)
- Traversable.getCompositionTraversable (also renamed to getTraversableComposition)
- Free (usage)
- NaturalTransformation
- ReaderT
- StateT
- removed (temporarily or because the porting is not possible)
- Id (not possible)
- Traced
- IxMonad
- Mealy
- FreeAp
- New Feature
- Functor: add
flap
, closes #129 (@gcanti) - Add getSetoid instances, closes #131 (@gcanti)
- Add "flipped" ap method to FantasyApply instances, closes #132 (@gcanti)
- Functor: add
- Polish
- Examples: correct TaskEither fold method (@OliverJAsh)
- Bug Fix
Array.snoc
returns wrong results with nested arrays, fix #133 (@gcanti)
- New Feature
- Functor: add
voidRight
/voidLeft
, closes #120 (@gcanti) - Add
Mealy
machine, closes #122 (@gcanti) - Add
Filterable
, closes #124 (@gcanti) - Add
Witherable
, closes #125 (@gcanti)
- Functor: add
- Polish
- upgrade to ts 2.3.4
- Either: make
right
=== `of\ - IxIO example: use new proof
- Bug Fix
- IxMonad: remove wrong type constraint (@gcanti)
- New Feature
- add
Free Applicative
, closes #106 (@gcanti) - Add
Semiring
, closes #107 (@gcanti) - Add
Ring
, closes #108 (@gcanti) - Add
Field
, closes #109 (@gcanti) - Improve
toString
methods, closes #116 (@gcanti)
- add
- Bug Fix
- NonEmptyArray: add missing static
of
(@gcanti) - add
_tag
type annotations, closes #118 (@gcanti)
- NonEmptyArray: add missing static
- Internal
- Change
proof
s of implementation (@rilut) - use prettier, closes #114 (@gcanti)
- Change
- New Feature
- add
StateT
monad transformer, closes #104 (@gcanti) - add
Store
comonad, closes #100 (@rilut) - add
Last
monoid, closes #99 (@gcanti) - add
Id
monadfunctor (@gcanti) - Array: add extend instance (@gcanti)
- NonEmptyArray: add comonad instance (@gcanti)
examples
folderexercises
folder
- add
- Polish
- Tuple: remove StaticFunctor checking (@rilut)
- Breaking Change (@gcanti)
- required typescript version: 2.3.3
- drop
Static
prefix in type classes - Change contramap signature, closes #32
- Validation: remove deprecated functions
- Foldable/toArray
- Dictionary/fromFoldable
- Dictionary/toUnfoldable
- Profunctor/lmap
- Profunctor/rmap
- Unfoldable/replicate
- compositions: renaming and signature changes
getFunctorComposition
->getCompositionFunctor
getApplicativeComposition
->getCompositionApplicative
getFoldableComposition
->getCompositionFoldable
getTraversableComposition
->getCompositionTraversable
OptionT
,EitherT
,ReaderT
refactoring- drop
IxMonadT
, moveIxIO
to theexamples
folder - drop
Trans
module Free
refactoring- drop
rxjs
dependency - drop
lib-jsnext
folder - make
None
constructor private - remove
Pointed
andCopointed
type classes
- New Feature
- add Monoidal type class (@gcanti)
- Bug Fix
- fix
foldMap
, closes #89 (@gcanti) - replace
instanceof
checks with valued_tag
s, fix #96 (@gcanti, @sledorze)
- fix
- New Feature
- Monoid: add
getFunctionStaticMonoid
, closes #70 (@gcanti) - Foldable: add
traverse_
andsequence_
, closes #71 (@gcanti) - add
getStaticMonad
toEitherT
,OptionT
,ReaderT
, closes #81 (@gcanti) - Applicative: add
when
, closes #77 (@gcanti) - indexed monad type class and
IxMonadT
, closes #73 (@gcanti) - Array / function: add refinements, closes #68 (@gcanti, @sledorze)
- Monoid: add
- Bug Fix
- Either:
of
should returnEither
, fix #80 (@gcanti) - fix
toArray
(@gcanti)
- Either:
- New Feature
Foldable
module: addintercalate
function, fix #65 (@gcanti)- Add
Profunctor
typeclass, fix #33 (@gcanti, @sledorze) - Add
These
, fix #47 (@gcanti) Apply
module: addapplyFirst
andapplySecond
, fix #60 (@sledorze)
- Bug Fix
- fix
Either.ap
(@sledorze)
- fix
- Polish
- expose experimental modules (@danielepolencic, @gcanti)
- New Feature
- add
getOrElse
toEither
, fix #39 (@sledorze) - add composition of functors, applicatives, foldables, traversables, fix #53 (@gcanti)
- add
- Experimental
- add
EitherT
, fix #36 (@gcanti) - add
OptionT
, fix #37 (@gcanti) - add
ReaderT
, fix #38 (@gcanti) - add
Trans
typeclass (liftT
), fix #40 (@gcanti) - add
Free
, fix #42 (@gcanti)
- add
- Polish
- deprecate
validation.getApplicativeS
/validation.getStaticApplicative
(@gcanti)
- deprecate
- Bug Fix
- fix return types of
validation.success
/validation.failure
(@gcanti)
- fix return types of
- Bug Fix
- fix
Some.reduce
so it callsf
, gcanti#45 (@leemhenson)
- fix
- New Feature
Semigroupoid
type class (@gcanti)Rxjs
module (@gcanti)Tuple
module (@gcanti)Dictionary
module (@gcanti)- add phantom types to all data structures in order to allow type extraction (@gcanti)
- add all exports for rollup (@gcanti)
- Breaking Change
- complete refactoring: new technique to get higher kinded types and typeclasses
- New Feature
- add support for fantasy-land
- Breaking Change
- complete refactoring
- remove
data
module - remove
newtype
module
- Bug Fix
- fix
compose
definition for 5 or more functions (@bumbleblym)
- fix
- New Feature
- make Array a HKT and deprecate
to
,from
helper functions, fix #5 (@gcanti) - add
Traced
comonad (@bumbleblym) - add
getOrElse
method toOption
(@gcanti) - add NonEmptyArray, fix #12 (@gcanti)
- make Array a HKT and deprecate
- Polish
- add tslint
- Bug Fix
- fix
State
definition (@gcanti)
- fix
- Bug Fix
- fix
ChainRec
definition (@gcanti)
- fix
Initial release