Innovenergy_trunk/frontend/node_modules/fp-ts/CHANGELOG.md

3196 lines
101 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Changelog
> **Tags:**
>
> - [New Feature]
> - [Bug Fix]
> - [Breaking Change]
> - [Documentation]
> - [Internal]
> - [Polish]
> - [Experimental]
> - [Deprecation]
**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.
# 2.13.1
- **New Feature**
- new modules:
- `ReaderIO`, #1738 (@sukovanej)
- do notation:
- add `let` helpers, #1725 (@Punie)
- `Alternative`
- add `getAlternativeMonoid`, #1717 (@willheslam)
- `function`
- `flip` is now curried, #1748 (@thewilkybarkid)
- `pipeable`
- add pipeable helpers, #1764 (@gcanti)
- `alt`
- `ap`
- `bimap`
- `chain`
- `compose`
- `contramap`
- `extend`
- `filter`
- `filterMap`
- `filterMapWithIndex`
- `filterWithIndex`
- `foldMap`
- `foldMapWithIndex`
- `map`
- `mapLeft`
- `mapWithIndex`
- `partition`
- `partitionMap`
- `partitionMapWithIndex`
- `partitionWithIndex`
- `promap`
- `reduce`
- `reduceRight`
- `reduceRightWithIndex`
- `reduceWithIndex`
- `ReaderTask`
- add `ReaderIO` constructors/combinators, #1773 (@thewilkybarkid)
- `ReaderTaskEither`
- add `ReaderIO` constructors/combinators, #1774 (@thewilkybarkid)
- `TaskEither`
- add `chainTaskOptionKW`, #1744 (@AmirabbasJ)
- **Bug Fix**
- do notation
- Ensuring that `bind` and `bindW` pass the correct params through rather than get rewritten by the function passed in, #1584 (@feydan)
- **Polish**
- backport from v3 some handy defaults defined in natural transformations/combinators/constructors (@gcanti)
- fix wrong type parameter order:
- `FromIO`
- `chainIOK`
- `FromTask`
- `chainTaskK`
- `chainFirstTaskK`
- `Whiterable`
- `FilterE1`
- `TheseT`
- `both`
- `Either`
- `apFirstW`
- `apSecondW`
- `IOEither`
- `apFirstW`
- `apSecondW`
- `Reader`
- `apFirstW`
- `apSecondW`
- `ReaderEither`
- `apFirstW`
- `apSecondW`
- `ReaderTaskEither`
- `apFirstW`
- `apSecondW`
- `StateReaderTaskEither`
- `apFirstW`
- `apSecondW`
- `TaskEither`
- `apFirstW`
- `apSecondW`
- `Apply`
- add `ap` overloadings, #1721 (@waynevanson)
- `Either`
- remove useless type parameter in `exists` (@gcanti)
- `ReadonlyRecord`
- fix `fromEntries` return type, closes #1745 (@gcanti)
- `TaskEither`
- fix `fromPredicate` signature (@gcanti)
- `These`
- add missing `fromPredicate` (@gcanti)
- remove useless type parameter in `exists` (@gcanti)
- `Traversable`
- add more overloadings to traverse / sequence helpers, #1758 (@gcanti)
- `Writer`
- `getChain` requires a `Semigroup` instead of a `Monoid` (@gcanti)
- **Deprecation**
- `function`
- deprecate uncurried `flip` function, #1748 (@thewilkybarkid)
# 2.12.2
- **Polish**
- `ReadonlyRecord` / `Record`
- add `Applicative4` overloadings to `traverse` / `traverseWithIndex`, #1733 (@mlegenhausen)
# 2.12.1
- **Bug Fix**
- `ReadonlyRecord`
- fix `traverseWithIndex` implementation, #1704 (@waynevanson)
# 2.12.0
- **New Feature**
- add `IOOption` module (@gcanti)
- `Array`
- add `intercalate`, #1678 (@thewilkybarkid)
- `Bounded`
- add `clamp` (@gcanti)
- add `reverse` (@gcanti)
- `Either`
- add `apFirstW`, #1564 (@DenisFrezzato)
- add `apSecondW`, #1564 (@DenisFrezzato)
- `EitherT`
- add `chainNullableK`, #1619 (@cwstra)
- add `fromNullable`, #1619 (@cwstra)
- add `fromNullableK`, #1619 (@cwstra)
- `FromEither`
- add `chainFirstEitherK` (@gcanti)
- `IOEither`
- add `apFirstW`, #1564 (@DenisFrezzato)
- add `apSecondW`, #1564 (@DenisFrezzato)
- add `chainFirstEitherK` (@gcanti)
- add `chainFirstEitherKW` (@gcanti)
- add `orElseFirstIOK`, #1655 (@thewilkybarkid)
- add `bracketW`, #1627 (@thomasvargiu)
- `NonEmptyArray`
- add `intercalate`, #1678 (@thewilkybarkid)
- `Option`
- add `chainFirstEitherK` (@gcanti)
- `Ordering`
- add `matchW`, #1535 (@mlegenhausen)
- `Reader`
- add `apFirstW`, #1564 (@DenisFrezzato)
- add `apSecondW`, #1564 (@DenisFrezzato)
- `ReaderEither`
- add `apFirstW`, #1564 (@DenisFrezzato)
- add `apSecondW`, #1564 (@DenisFrezzato)
- add `chainFirstEitherK` (@gcanti)
- add `chainFirstEitherKW` (@gcanti)
- `ReaderTaskEither`
- add `apFirstW`, #1564 (@DenisFrezzato)
- add `apSecondW`, #1564 (@DenisFrezzato)
- add `chainFirstEitherK`, #1562 (@DenisFrezzato)
- add `chainFirstEitherKW`, #1562 (@DenisFrezzato)
- add `bracketW`, #1627 (@thomasvargiu)
- add `chainNullableK` (@gcanti)
- add `fromNullable` (@gcanti)
- add `fromNullableK` (@gcanti)
- `ReadonlyArray`
- add `intercalate`, #1678 (@thewilkybarkid)
- `ReadonlyNonEmptyArray`
- add `intercalate`, #1678 (@thewilkybarkid)
- `ReadonlyRecord`
- add `toEntries`, #1552 (@bravely)
- add `fromEntries`, #1552 (@bravely)
- `Record`
- add `toEntries`, #1552 (@bravely)
- add `fromEntries`, #1552 (@bravely)
- `StateReaderTaskEither`
- add `apFirstW`, #1564 (@DenisFrezzato)
- add `apSecondW`, #1564 (@DenisFrezzato)
- add `chainFirstEitherK` (@gcanti)
- add `chainFirstEitherKW` (@gcanti)
- `TaskEither`
- add `apFirstW`, #1564 (@DenisFrezzato)
- add `apSecondW`, #1564 (@DenisFrezzato)
- add `chainFirstEitherK`, #1659 (@vinassefranche)
- add `chainFirstEitherKW`, #1659 (@vinassefranche)
- add `orElseFirstIOK`, #1655 (@thewilkybarkid)
- add `orElseFirstTaskK`, #1655 (@thewilkybarkid)
- add `bracketW`, #1627 (@thomasvargiu)
- add `chainNullableK`, #1619 (@cwstra)
- add `fromNullable`, #1619 (@cwstra)
- add `fromNullableK`, #1619 (@cwstra)
- `TaskOption`
- add `fromEitherK` (@gcanti)
- add `chainEitherK` (@gcanti)
- add `chainFirstEitherK` (@gcanti)
# 2.11.10
- **Polish**
- `TaskEither` / `TaskOption`
- now `tryCatch` / `tryCatchK` will catch synchronous errors too, #1676 (@thewilkybarkid)
# 2.11.9
- **Polish**
- add `Refinement` overload to 'every' functions, #1681 (@mlegenhausen)
# 2.11.8
- **Polish**
- Add missing pure annotations, #1658 (@OliverJAsh)
# 2.11.7
- **Polish**
- more `Functor.map` overloadings, closes #1623 (@gcanti)
# 2.11.6
- **Polish**
- `ReaderEither`
- `orElseFirstW`: intersect dependencies like `orElseW` (@gcanti)
- `ReaderTaskEither`
- `orElseFirstW`: intersect dependencies like `orElseW`, #1635 (@OliverJAsh)
# 2.11.5
- **Polish**
- more curried `elem` overloads, #1602 (@ammut)
# 2.11.4
- **Polish**
- fix `chainNullableK` signature, #1589 (@bwlt)
- stack safety for `Task` via microtasks suspension, #1591 (@mikearnaldi)
# 2.11.3
- **Polish**
- pipe: fix v8 performance cliff for >10 case stmts, #1585 (@pbadenski)
# 2.11.2
- **Polish**
- Add/fix pure comments, #1555 (@OliverJAsh)
# 2.11.1
- **Deprecation**
- `Array`
- deprecate `range`, use `NonEmptyArray` module instead.
- `function`
- deprecate `Endomorphism`, use `Endomorphism` module instead.
- deprecate `getEndomorphismMonoid`, use `Endomorphism` module instead.
- deprecate `Predicate`, use `Predicate` module instead.
- deprecate `not`, use `Predicate` module instead.
- deprecate `Refinement`, use `Refinement` module instead.
- `Monoid`
- deprecate `monoidVoid`, use `void` module instead.
- `NonEmptyArray`
- deprecate `groupSort` (it's just `sort` followed by `group`)
- `Option`
- deprecate `getRefinement`, use `Refinement` module instead.
- deprecate `getFirstMonoid`, use `getMonoid` module instead.
- deprecate `getLastMonoid`, use `getMonoid` module instead.
- `ReadonlyArray`
- deprecate `range`, use `ReadonlyNonEmptyArray` module instead.
- `ReadonlyNonEmptyArray`
- deprecate `groupSort` (it's just `sort` followed by `group`)
- `Record` / `ReadonlyRecord`: deprecate overloads without `Ord` constraint (@anthonyjoeseph):
- `collect`
- `reduce`
- `foldMap`
- `reduceRight`
- `reduceWithIndex`
- `foldMapWithIndex`
- `reduceRightWithIndex`
- `getShow`
- deprecate `Foldable` in favour of `getFoldable` (@anthonyjoeseph)
- deprecate `FoldableWithIndex` in favour of `getFoldableWithIndex` (@anthonyjoeseph)
- deprecate `Traversable` in favour of `getTraversable` (@anthonyjoeseph)
- deprecate `TraversableWithIndex` in favour of `getTraversableWithIndex` (@anthonyjoeseph)
- deprecate `Witherable` in favour of `getWitherable` (@anthonyjoeseph)
- `Semigroup`
- deprecate `semigroupVoid`, use `void` module instead.
- **New Feature**
- add `Endomorphism` module
- add `Predicate` module
- add `Refinement` module
- add `FromState` module
- add `FromThese` module
- add `void` module
- add `FromReader` module
- add `NaturalTransformation` module
- add `Zero` module
- `Alt`
- add `altAll`
- `Alternative`
- add `altAll`
- `Array`
- add `prependW`, `appendW` (@thewilkybarkid)
- add `fromOption`, `fromPredicate` (@cdimitroulas)
- add `filterE`
- add `ChainRecDepthFirst` instance (@qlonik)
- add `chainRecDepthFirst`
- add `ChainRecBreadthFirst` instance (@qlonik)
- add `chainRecBreadthFirst`
- add `getUnionSemigroup`
- add `getUnionMonoid`
- add `getIntersectionSemigroup`
- add `getDifferenceMagma`
- add `fromEither`
- add `FromEither` instance
- add `fromEitherK`
- make `isEmpty` a user defined guard
- add `concat` / `concatW`
- add `match`, `matchW`, `matchLeftW`, `matchRightW`
- add `fromOptionK`
- add `Zero` instance
- add `guard` constructor
- add `exists` alias
- `boolean`
- add `isBoolean`
- `Either`
- add `chainOptionK`
- add `flattenW`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- `EitherT`
- add `orElseFirst`
- add `orLeft`
- `function`
- add `SK` (@cdimitroulas)
- add `apply`
- `IO`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- `IOEither`
- add `orElseFirst` / `orElseFirstW`
- add `orLeft`
- add `flattenW`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- add `traverseReadonlyNonEmptyArrayWithIndexSeq`
- add `traverseReadonlyArrayWithIndexSeq`
- `Magma`
- add `reverse`
- add `filterFirst`
- add `filterSecond`
- add `endo`
- add `concatAll`
- `Map`
- add `union`
- add `intersection`
- add `difference`
- add `getUnionSemigroup`
- add `getUnionMonoid`
- add `getIntersectionSemigroup`
- add `getDifferenceMagma`
- add `getFoldable`
- add `foldMap`
- add `reduceRight`
- add `reduceWithIndex`
- add `foldMapWithIndex`
- add `reduceRightWithIndex`
- `NonEmptyArray`
- add `matchLeft`, `matchRight`, `modifyHead`, `modifyLast` (@cdimitroulas)
- add `union`
- add `getUnionSemigroup`
- add `makeBy`
- add `range`
- make `concat` pipeable
- `number`
- add `MagmaSub`
- add `isNumber`
- `string`
- add `isString`
- `Option`
- add `FromEither` instance
- add `fromEitherK`
- add `chainEitherK`
- add `Zero` instance
- add `guard` constructor
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- `Ord`
- add `trivial` instance
- add `equals`
- `Reader`
- add `asksReaderW`, `asksReader`
- add `flattenW`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- `ReaderEither`
- add `asksReaderEitherW`, `asksReaderEither`
- add `orElseFirst` / `orElseFirstW`
- add `orLeft`
- add `chainReaderKW`
- add `chainFirstReaderK`, `chainFirstReaderKW`
- add `flattenW`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- `ReaderTask`
- add `asksReaderTaskW`, `asksReaderTask`
- add `chainReaderKW`
- add `chainFirstReaderK`, `chainFirstReaderKW`
- add `flattenW`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- add `traverseReadonlyNonEmptyArrayWithIndexSeq`
- add `traverseReadonlyArrayWithIndexSeq`
- `ReaderTaskEither`
- add `asksReaderTaskEitherW`, `asksReaderTaskEither`
- add `orElseFirst` / `orElseFirstW`
- add `orLeft`
- add `fromReaderTaskK`
- add `fromReaderEitherK`
- add `chainReaderKW`
- add `chainReaderTaskK`, `chainReaderTaskKW`
- add `chainFirstReaderK`, `chainFirstReaderKW`
- add `chainFirstReaderTaskK`, `chainFirstReaderTaskKW`
- add `chainReaderEitherK`, `chainReaderEitherKW`
- add `chainFirstReaderEitherK`, `chainFirstReaderEitherKW`
- add `chainFirstTaskEitherK`, `chainFirstTaskEitherKW`
- add `flattenW`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- add `traverseReadonlyNonEmptyArrayWithIndexSeq`
- add `traverseReadonlyArrayWithIndexSeq`
- `ReadonlyArray`
- add `prependW`, `appendW` (@thewilkybarkid)
- add `filterE`
- add `ChainRecDepthFirst` instance (@qlonik)
- add `chainRecDepthFirst`
- add `ChainRecBreadthFirst` instance (@qlonik)
- add `chainRecBreadthFirst`
- add `getUnionSemigroup`
- add `getUnionMonoid`
- add `getIntersectionSemigroup`
- add `getDifferenceMagma`
- add `fromOption`
- add `fromPredicate`
- add `fromEither`
- add `FromEither` instance
- add `fromEitherK`
- make `isEmpty` a user defined guard
- add `concat` / `concatW`
- add `match`, `matchW`, `matchLeftW`, `matchRightW`
- add `fromOptionK`
- add `Zero` instance
- add `guard` constructor
- add `exists` alias
- `ReadonlyMap`
- add `union`
- add `intersection`
- add `difference`
- add `getUnionSemigroup`
- add `getUnionMonoid`
- add `getIntersectionSemigroup`
- add `getDifferenceMagma`
- add `reduce`
- add `foldMap`
- add `reduceRight`
- add `reduceWithIndex`
- add `foldMapWithIndex`
- add `reduceRightWithIndex`
- `ReadonlyNonEmptyArray`
- add `matchLeft`, `matchRight`, `modifyHead`, `modifyLast` (@cdimitroulas)
- add `union`
- add `getUnionSemigroup`
- add `makeBy`
- add `range`
- make `concat` pipeable
- `ReadonlyRecord`
- add `union` (@anthonyjoeseph)
- add `intersection` (@anthonyjoeseph)
- add `difference` (@anthonyjoeseph)
- add `getUnionSemigroup` (@anthonyjoeseph)
- add `getUnionMonoid` (@anthonyjoeseph)
- add `getIntersectionSemigroup` (@anthonyjoeseph)
- add `getDifferenceMagma` (@anthonyjoeseph)
- `ReadonlySet`
- add `getUnionSemigroup`
- add `getDifferenceMagma`
- `Record`
- add `union`
- add `intersection`
- add `difference`
- add `getUnionSemigroup`
- add `getUnionMonoid`
- add `getIntersectionSemigroup`
- add `getDifferenceMagma`
- `Set`
- add `getUnionSemigroup`
- add `getDifferenceMagma`
- `State`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- `StateReaderTaskEither`
- add `fromStateK`
- add `chainStateK`
- add `local`
- add `asksStateReaderTaskEitherW`, `asksStateReaderTaskEither`
- add `chainReaderKW`
- add `chainFirstReaderK`, `chainFirstReaderKW`
- add `flattenW`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- `string`
- add `toUpperCase`
- add `toLowerCase`
- add `replace`
- add `split`
- add `trim`
- add `trimLeft`
- add `trimRight`
- add `includes`
- add `startsWith`
- add `endsWith`
- add `slice`
- `struct`
- add `evolve`
- `Task`
- add `ApT`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- add `traverseReadonlyNonEmptyArrayWithIndexSeq`
- add `traverseReadonlyArrayWithIndexSeq`
- `TaskEither`
- add `fromTaskOption` (@thewilkybarkid)
- add `fromTaskOptionK`
- add `chainTaskOptionK`
- add `orElseFirst` / `orElseFirstW`
- add `orLeft`
- add `flattenW`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- add `traverseReadonlyNonEmptyArrayWithIndexSeq`
- add `traverseReadonlyArrayWithIndexSeq`
- `TaskOption`
- add `fromTaskEither` (@thewilkybarkid)
- add `Zero` instance
- add `guard` constructor
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- add `traverseReadonlyNonEmptyArrayWithIndexSeq`
- add `traverseReadonlyArrayWithIndexSeq`
- add missing `FromEither` instance
- `TaskThese`
- add `ApT`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- add `traverseReadonlyNonEmptyArrayWithIndexSeq`
- add `traverseReadonlyArrayWithIndexSeq`
- `These`
- add `elem`
- add `exists`
- add `ApT`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- `Tree`
- add `exists`
- `Witherable`
- add `filterE`, #1458 (@vinassefranche)
- add `wiltDefault`
- add `witherDefault`
- **Polish**
- remove unnecessary type parameters
- `Either`
- `isLeft`
- `isRight`
- `Option`
- `isNone`
- `These`
- `isLeft`
- `isRight`
# 2.11.0-rc.2
- `string`
- `split` now returns a `ReadonlyNonEmptyArray`
- `TaskOption`
- add missing `FromEither` instance
- some signature changes in `2.11.0-rc.1` caused type inference issues
- `Array` / `ReadonlyArray`
- revert `isOutOfBound` signature change
- revert `isEmpty` signature change
- revert `size` signature change
- `Either`
- revert `exists` signature change
- revert `elem` signature change
- `These`
- revert `exists` signature change
- revert `elem` signature change
- `NonEmptyArray` / `ReadonlyNonEmptyArray`
- revert `isOutOfBound` signature change
- `Set` / `ReadonlySet`
- revert `isEmpty` signature change
- revert `size` signature change
- `Map` / `ReadonlyMap`
- revert `isEmpty` signature change
- revert `size` signature change
# 2.11.0-rc.1
- **Deprecation**
- `Array`
- deprecate `range`, use `NonEmptyArray` module instead.
- `function`
- deprecate `Endomorphism`, use `Endomorphism` module instead.
- deprecate `getEndomorphismMonoid`, use `Endomorphism` module instead.
- deprecate `Predicate`, use `Predicate` module instead.
- deprecate `not`, use `Predicate` module instead.
- deprecate `Refinement`, use `Refinement` module instead.
- `Monoid`
- deprecate `monoidVoid`, use `void` module instead.
- `NonEmptyArray`
- deprecate `groupSort` (it's just `sort` followed by `group`)
- `Option`
- deprecate `getRefinement`, use `Refinement` module instead.
- deprecate `getFirstMonoid`, use `getMonoid` module instead.
- deprecate `getLastMonoid`, use `getMonoid` module instead.
- `ReadonlyArray`
- deprecate `range`, use `ReadonlyNonEmptyArray` module instead.
- `ReadonlyNonEmptyArray`
- deprecate `groupSort` (it's just `sort` followed by `group`)
- `Record` / `ReadonlyRecord`: deprecate overloads without `Ord` constraint (@anthonyjoeseph):
- `collect`
- `reduce`
- `foldMap`
- `reduceRight`
- `reduceWithIndex`
- `foldMapWithIndex`
- `reduceRightWithIndex`
- `getShow`
- deprecate `Foldable` in favour of `getFoldable` (@anthonyjoeseph)
- deprecate `FoldableWithIndex` in favour of `getFoldableWithIndex` (@anthonyjoeseph)
- deprecate `Traversable` in favour of `getTraversable` (@anthonyjoeseph)
- deprecate `TraversableWithIndex` in favour of `getTraversableWithIndex` (@anthonyjoeseph)
- deprecate `Witherable` in favour of `getWitherable` (@anthonyjoeseph)
- `Semigroup`
- deprecate `semigroupVoid`, use `void` module instead.
- **New Feature**
- add `Endomorphism` module
- add `Predicate` module
- add `Refinement` module
- add `FromState` module
- add `FromThese` module
- add `void` module
- add `FromReader` module
- add `NaturalTransformation` module
- add `Zero` module
- `Alt`
- add `altAll`
- `Alternative`
- add `altAll`
- `Array`
- add `prependW`, `appendW` (@thewilkybarkid)
- add `fromOption`, `fromPredicate` (@cdimitroulas)
- add `filterE`
- add `ChainRecDepthFirst` instance (@qlonik)
- add `chainRecDepthFirst`
- add `ChainRecBreadthFirst` instance (@qlonik)
- add `chainRecBreadthFirst`
- add `getUnionSemigroup`
- add `getUnionMonoid`
- add `getIntersectionSemigroup`
- add `getDifferenceMagma`
- add `fromEither`
- add `FromEither` instance
- add `fromEitherK`
- make `isEmpty` a user defined guard
- add `concat` / `concatW`
- add `match`, `matchW`, `matchLeftW`, `matchRightW`
- add `fromOptionK`
- add `Zero` instance
- add `guard` constructor
- add `exists` alias
- `boolean`
- add `isBoolean`
- `Either`
- add `chainOptionK`
- add `flattenW`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- `EitherT`
- add `orElseFirst`
- add `orLeft`
- `function`
- add `SK` (@cdimitroulas)
- add `apply`
- `IO`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- `IOEither`
- add `orElseFirst` / `orElseFirstW`
- add `orLeft`
- add `flattenW`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- add `traverseReadonlyNonEmptyArrayWithIndexSeq`
- add `traverseReadonlyArrayWithIndexSeq`
- `Magma`
- add `reverse`
- add `filterFirst`
- add `filterSecond`
- add `endo`
- add `concatAll`
- `Map`
- add `union`
- add `intersection`
- add `difference`
- add `getUnionSemigroup`
- add `getUnionMonoid`
- add `getIntersectionSemigroup`
- add `getDifferenceMagma`
- add `getFoldable`
- add `foldMap`
- add `reduceRight`
- add `reduceWithIndex`
- add `foldMapWithIndex`
- add `reduceRightWithIndex`
- `NonEmptyArray`
- add `matchLeft`, `matchRight`, `modifyHead`, `modifyLast` (@cdimitroulas)
- add `union`
- add `getUnionSemigroup`
- add `makeBy`
- add `range`
- make `concat` pipeable
- `number`
- add `MagmaSub`
- add `isNumber`
- `string`
- add `isString`
- `Option`
- add `FromEither` instance
- add `fromEitherK`
- add `chainEitherK`
- add `Zero` instance
- add `guard` constructor
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- `Ord`
- add `trivial` instance
- add `equals`
- `Reader`
- add `asksReaderW`, `asksReader`
- add `flattenW`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- `ReaderEither`
- add `asksReaderEitherW`, `asksReaderEither`
- add `orElseFirst` / `orElseFirstW`
- add `orLeft`
- add `chainReaderKW`
- add `chainFirstReaderK`, `chainFirstReaderKW`
- add `flattenW`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- `ReaderTask`
- add `asksReaderTaskW`, `asksReaderTask`
- add `chainReaderKW`
- add `chainFirstReaderK`, `chainFirstReaderKW`
- add `flattenW`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- add `traverseReadonlyNonEmptyArrayWithIndexSeq`
- add `traverseReadonlyArrayWithIndexSeq`
- `ReaderTaskEither`
- add `asksReaderTaskEitherW`, `asksReaderTaskEither`
- add `orElseFirst` / `orElseFirstW`
- add `orLeft`
- add `fromReaderTaskK`
- add `fromReaderEitherK`
- add `chainReaderKW`
- add `chainReaderTaskK`, `chainReaderTaskKW`
- add `chainFirstReaderK`, `chainFirstReaderKW`
- add `chainFirstReaderTaskK`, `chainFirstReaderTaskKW`
- add `chainReaderEitherK`, `chainReaderEitherKW`
- add `chainFirstReaderEitherK`, `chainFirstReaderEitherKW`
- add `chainFirstTaskEitherK`, `chainFirstTaskEitherKW`
- add `flattenW`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- add `traverseReadonlyNonEmptyArrayWithIndexSeq`
- add `traverseReadonlyArrayWithIndexSeq`
- `ReadonlyArray`
- add `prependW`, `appendW` (@thewilkybarkid)
- add `filterE`
- add `ChainRecDepthFirst` instance (@qlonik)
- add `chainRecDepthFirst`
- add `ChainRecBreadthFirst` instance (@qlonik)
- add `chainRecBreadthFirst`
- add `getUnionSemigroup`
- add `getUnionMonoid`
- add `getIntersectionSemigroup`
- add `getDifferenceMagma`
- add `fromOption`
- add `fromPredicate`
- add `fromEither`
- add `FromEither` instance
- add `fromEitherK`
- make `isEmpty` a user defined guard
- add `concat` / `concatW`
- add `match`, `matchW`, `matchLeftW`, `matchRightW`
- add `fromOptionK`
- add `Zero` instance
- add `guard` constructor
- add `exists` alias
- `ReadonlyMap`
- add `union`
- add `intersection`
- add `difference`
- add `getUnionSemigroup`
- add `getUnionMonoid`
- add `getIntersectionSemigroup`
- add `getDifferenceMagma`
- add `reduce`
- add `foldMap`
- add `reduceRight`
- add `reduceWithIndex`
- add `foldMapWithIndex`
- add `reduceRightWithIndex`
- `ReadonlyNonEmptyArray`
- add `matchLeft`, `matchRight`, `modifyHead`, `modifyLast` (@cdimitroulas)
- add `union`
- add `getUnionSemigroup`
- add `makeBy`
- add `range`
- make `concat` pipeable
- `ReadonlyRecord`
- add `union` (@anthonyjoeseph)
- add `intersection` (@anthonyjoeseph)
- add `difference` (@anthonyjoeseph)
- add `getUnionSemigroup` (@anthonyjoeseph)
- add `getUnionMonoid` (@anthonyjoeseph)
- add `getIntersectionSemigroup` (@anthonyjoeseph)
- add `getDifferenceMagma` (@anthonyjoeseph)
- `ReadonlySet`
- add `getUnionSemigroup`
- add `getDifferenceMagma`
- `Record`
- add `union`
- add `intersection`
- add `difference`
- add `getUnionSemigroup`
- add `getUnionMonoid`
- add `getIntersectionSemigroup`
- add `getDifferenceMagma`
- `Set`
- add `getUnionSemigroup`
- add `getDifferenceMagma`
- `State`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- `StateReaderTaskEither`
- add `fromStateK`
- add `chainStateK`
- add `local`
- add `asksStateReaderTaskEitherW`, `asksStateReaderTaskEither`
- add `chainReaderKW`
- add `chainFirstReaderK`, `chainFirstReaderKW`
- add `flattenW`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- `string`
- add `toUpperCase`
- add `toLowerCase`
- add `replace`
- add `split`
- add `trim`
- add `trimLeft`
- add `trimRight`
- add `includes`
- add `startsWith`
- add `endsWith`
- add `slice`
- `struct`
- add `evolve`
- `Task`
- add `ApT`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- add `traverseReadonlyNonEmptyArrayWithIndexSeq`
- add `traverseReadonlyArrayWithIndexSeq`
- `TaskEither`
- add `fromTaskOption` (@thewilkybarkid)
- add `fromTaskOptionK`
- add `chainTaskOptionK`
- add `orElseFirst` / `orElseFirstW`
- add `orLeft`
- add `flattenW`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- add `traverseReadonlyNonEmptyArrayWithIndexSeq`
- add `traverseReadonlyArrayWithIndexSeq`
- `TaskOption`
- add `fromTaskEither` (@thewilkybarkid)
- add `Zero` instance
- add `guard` constructor
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- add `traverseReadonlyNonEmptyArrayWithIndexSeq`
- add `traverseReadonlyArrayWithIndexSeq`
- `TaskThese`
- add `ApT`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- add `traverseReadonlyNonEmptyArrayWithIndexSeq`
- add `traverseReadonlyArrayWithIndexSeq`
- `These`
- add `elem`
- add `exists`
- add `ApT`
- add `traverseReadonlyNonEmptyArrayWithIndex`
- add `traverseReadonlyArrayWithIndex`
- `Tree`
- add `exists`
- `Witherable`
- add `filterE`, #1458 (@vinassefranche)
- add `wiltDefault`
- add `witherDefault`
- **Polish**
- remove unnecessary type parameters
- `Either`
- `exists`
- `isLeft`
- `isRight`
- `elem`
- `Option`
- `isNone`
- `These`
- `isLeft`
- `isRight`
- `Set` / `ReadonlySet`
- `isEmpty`
- `size`
- `Array` / `ReadonlyArray`
- `isEmpty`
- `isOutOfBound`
- `size`
- `Map` / `ReadonlyMap`
- `isEmpty`
- `size`
- `NonEmptyArray` / `ReadonlyNonEmptyArray`
- `isOutOfBound`
# 2.10.5
- **Bug Fix**
- `StateT`
- fix typo in `fromF`, #1503 (@DKurilo)
# 2.10.4
- **Bug Fix**
- `altW` left type is too wide in `Either`-based data types, #1488 (@wmaurer)
# 2.10.3
- **Bug Fix**
- `StateReaderTaskEither`
- `traverseArrayWithIndex` does not pass the output state from each step to the subsequent step, #1486
# 2.10.2
- **Bug Fix**
- `Record`
- `hasOwnProperty` should be an alias of `ReadonlyRecord.hasOwnProperty`
# 2.10.1
- **Bug Fix**
- rename `hasOwnProperty` in `internal` module, #1481 (@OliverJAsh)
# 2.10.0
- **Deprecations**
- deprecate `pipeable` module, use the specific helpers instead
- deprecate `ValidationT` module, use `EitherT` instead
- deprecate "mega instances", use small, specific instances instead
- deprecate the old monad transformers, use the specific helpers instead
- `Applicative`
- deprecate `getApplicativeComposition`, use `ap` helper instead
- `Array`
- deprecate `prependToAll`, use `prependAll` instead
- deprecate `cons` in favour of `prepend`
- deprecate `snoc` in favour of `append`
- deprecate `empty`
- `BooleanAlgebra`
- deprecate `booleanAlgebraBoolean`, use `boolean.BooleanAlgebra` instead
- deprecate `getFunctionBooleanAlgebra`, use `function.getBooleanAlgebra` instead
- deprecate `getDualBooleanAlgebra`, use `reverse` instead
- `Bounded`
- deprecate `boundedNumber`, use `number.Bounded` instead
- `Choice`
- deprecate `splitChoice` in favour of `split`
- deprecate `fanin` in favour of `fanIn`
- `Compactable`
- deprecate `getCompactableComposition`, use `compact`, `separate` helpers instead
- deprecate `Separated`, use `Separated.Separated` instead
- `Either`
- deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid`
- deprecate `getValidationSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getValidationMonoid` in favour of `Applicative.getApplicativeMonoid`
- deprecate `getValidation`, use `getApplicativeValidation` and `getAltValidation` instead
- deprecate `Json` type, use the `Json` module instead
- deprecate `parseJSON` type, use the `Json` module instead
- deprecate `stringifyJSON` type, use the `Json` module instead
- `Eq`
- deprecate `eqBoolean`, use `boolean.Eq` instead
- deprecate `eqString`, use `string.Eq` instead
- deprecate `eqNumber`, use `number.Eq` instead
- deprecate `eqDate`, use `Date.Eq` instead
- deprecate `getStructEq`, use `struct` instead
- deprecate `getTupleEq`, use `tuple` instead
- `Filterable`
- deprecate `getFilterableComposition`, use `filter`, `filterMap`, `partition`, `partitionMap` helpers instead
- `Foldable`
- deprecate `toArray` in favour of `toReadonlyArray`
- deprecate `getFoldableComposition`, use `reduce`, `foldMap`, `reduceRight` helpers instead
- `FoldableWithIndex`
- deprecate `getFoldableWithIndexComposition`, use `reduceWithIndex`, `foldMapWithIndex`, `reduceRightWithIndex` helpers instead
- `Functor`
- deprecate `getFunctorComposition`, use `map` helper instead
- `FunctorWithIndex`
- deprecate `getFunctorWithIndexComposition`, use `mapWithIndex` helper instead
- `IO`
- deprecate `getSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getMonoid` in favour of `Applicative.getApplicativeMonoid`
- deprecate `fromIO`
- `IOEither`
- deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup`
- daprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid`
- deprecate `getSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getIOValidation`, use `getApplicativeIOValidation` and `getAltIOValidation` instead
- `Map`
- deprecate `insertAt` in favour of `upsertAt`
- deprecate `empty`
- `Monoid`
- deprecate `monoidAll`, use `boolean.MonoidAll` instead
- deprecate `monoidAny`, use `boolean.MonoidAny` instead
- deprecate `getFunctionMonoid`, use `function.getMonoid` instead
- deprecate `getEndomorphismMonoid`, use `function.getEndomorphismMonoid` instead (**Note**. The execution order in
`function.getEndomorphismMonoid` is reversed)
- deprecate `monoidString`, use `string.Monoid` instead
- deprecate `monoidSum`, use `number.MonoidSum` instead
- deprecate `monoidProduct`, use `number.MonoidProduct` instead
- deprecate `fold`, use `concatAll` instead
- deprecate `getMeetMonoid`, use `min` instead
- deprecate `getJoinMonoid`, use `max` instead
- deprecate `getDualMonoid`, use `reverse` instead
- deprecate `getStructMonoid`, use `struct` instead
- deprecate `getTupleMonoid`, use `tuple` instead
- `NonEmptyArray`
- deprecate `fold`, use `concatAll` instead
- deprecate `prependToAll`, use `prependAll` instead
- deprecate `cons` in favour of `prepend`
- deprecate `snoc` in favour of `append`
- deprecate `uncons` in favour of `unprepend`
- deprecate `unsnoc` in favour of `unappend`
- deprecate `filter` in favour of `Array`'s `filter`
- deprecate `filterWithIndex` in favour of `Array`'s `filterWithIndex`
- `Option`
- deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid`
- `Ord`
- deprecate `ordBoolean`, use `boolean.Ord` instead
- deprecate `ordString`, use `string.Ord` instead
- deprecate `ordNumber`, use `number.Ord` instead
- deprecate `ordDate`, use `Date.Ord` instead
- deprecate `getDualOrd`, use `reverse` instead
- deprecate `getTupleOrd`, use `tuple` instead
- `Ordering`
- deprecate `eqOrdering`, use `Eq` instead
- deprecate `monoidOrdering`, use `Monoid` instead
- deprecate `invert` in favour of `reverse`
- `Ring`
- deprecate `getFunctionRing`, use `function.getRing` instead
- `Reader`
- deprecate `getSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getMonoid` in favour of `Applicative.getApplicativeMonoid`
- `ReaderEither`
- deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid`
- deprecate `getSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getReaderValidation`, use `getApplicativeReaderValidation` and `getAltReaderValidation` instead
- deprecate `local`, Use `Reader`'s `local` instead
- `ReaderTask`
- deprecate `getSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getMonoid` in favour of `Applicative.getApplicativeMonoid`
- deprecate `run`
- deprecate `local`, Use `Reader`'s `local` instead
- `ReaderTaskEither`
- deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid`
- deprecate `getSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getReaderTaskValidation`, use `getApplicativeReaderTaskValidation` and `getAltReaderTaskValidation` instead
- deprecate `run`
- deprecate `local`, Use `Reader`'s `local` instead
- `ReaderTaskEither`
- deprecate `run`
- `ReadonlyArray`
- deprecate `prependToAll`, use `prependAll` instead
- deprecate `cons` in favour of `prepend`
- deprecate `snoc` in favour of `append`
- `ReadonlyNonEmptyArray`
- deprecate `fold`, use `concatAll` instead
- deprecate `prependToAll`, use `prependAll` instead
- deprecate `insertAt`, Use `ReadonlyArray`'s `insertAt` instead
- deprecate `cons` in favour of `prepend`
- deprecate `snoc` in favour of `append`
- deprecate `uncons` in favour of `unprepend`
- deprecate `unsnoc` in favour of `unappend`
- deprecate `filter` in favour of `ReadonlyArray`'s `filter`
- deprecate `filterWithIndex` in favour of `ReadonlyArray`'s `filterWithIndex`
- `ReadonlyMap`
- deprecate `insertAt` in favour of `upsertAt`
- `ReadonlyRecord`
- deprecate `hasOwnProperty`, use `has` instead
- deprecate `insertAt` in favour of `upsertAt`
- `ReadonlySet`
- deprecate `fromArray` in favour of `fromReadonlyArray`
- `ReadonlyTuple`
- deprecate `mapLeft` in favour of `mapSnd`
- deprecate `map` in favour of `mapFst`
- `Record`
- deprecate `hasOwnProperty`, use `has` instead
- deprecate `insertAt` in favour of `upsertAt`
- deprecate `empty`
- `Ring`
- deprecate `getTupleRing`, use `tuple` instead
- `Semigroup`
- deprecate `semigroupAll`, use `boolean.SemigroupAll` instead
- deprecate `semigroupAny`, use `boolean.SemigroupAny` instead
- deprecate `getFunctionSemigroup`, use `function.getSemigroup` instead
- deprecate `semigroupString`, use `string.Semigroup` instead
- deprecate `semigroupSum`, use `number.SemigroupSum` instead
- deprecate `semigroupProduct`, use `number.SemigroupProduct` instead
- deprecate `fold`, use `concatAll` instead
- deprecate `getIntercalateSemigroup`, use `intercalate` instead
- deprecate `getMeetSemigroup`, use `min` instead
- deprecate `getJoinSemigroup`, use `max` instead
- deprecate `getDualSemigroup`, use `reverse` instead
- deprecate `getStructSemigroup`, use `struct` instead
- deprecate `getTupleSemigroup`, use `tuple` instead
- deprecate `getFirstSemigroup`, use `first` instead
- deprecate `getLastSemigroup`, use `last` instead
- deprecate `getObjectSemigroup`, use `assign` instead
- `Set`
- deprecate `subset` in favour of `isSubset`
- `Show`
- deprecate `showBoolean`, use `boolean.Show` instead
- deprecate `showString`, use `string.Show` instead
- deprecate `showNumber`, use `number.Show` instead
- deprecate `getStructShow`, use `struct` instead
- deprecate `getTupleShow`, use `tuple` instead
- `Strong`
- deprecate `splitStrong` in favour of `split`
- deprecate `fanout` in favour of `fanOut`
- `Task`
- deprecate `getSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getMonoid` in favour of `Applicative.getApplicativeMonoid`
- deprecate `fromTask`
- `TaskEither`
- deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid`
- deprecate `getSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getTaskValidation`, use `getApplicativeTaskValidation` and `getAltTaskValidation` instead
- `TaskThese`
- deprecate `functorTaskThese` instance in favour of `Functor`
- deprecate `bifunctorTaskThese` instance in favour of `Bifunctor`
- deprecate `getSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `toTuple` in favour of `toTuple2`
- `These`
- deprecate `toTuple` in favour of `toTuple2`
- `Traversable`
- deprecate `getTraversableComposition`, use `traverse`, `sequence` helpers instead
- `Tuple`
- deprecate `mapLeft` in favour of `mapSnd`
- deprecate `map` in favour of `mapFst`
- **New Feature**
- add `Pointed` type class
- add `FromEither` type class
- add `FromIO` type class
- add `FromTask` type class
- add `TaskOption` module
- add `string` module
- add `number` module
- add `Separated` module (@YBogomolov)
- add `Json` module
- `Apply`
- add `ap` helper
- add `apS` helper
- add `apFirst` helper
- add `apSecond` helper
- add `getApplySemigroup`
- `Applicative`
- add `getApplicativeMonoid`
- `Array`
- add `Pointed` instance
- add `Apply` instance
- add `matchLeft` alias
- add `matchRight` alias
- add `size`
- better `unsafeInsertAt` signature
- better `chunksOf` signature
- add `getSemigroup`
- `boolean`
- add `foldW`
- add `match` alias
- add `matchW` alias
- add `Eq` instance
- add `BooleanAlgebra` instance
- add `SemigroupAll` instance
- add `SemigroupAny` instance
- add `MonoidAll` instance
- add `MonoidAny` instance
- add `Ord` instance
- add `Show` instance
- `BooleanAlgebra`
- add `reverse`
- `Chain`
- add `bind` helper
- add `chainFirst` helper
- `Compactable`
- add `compact` helper
- add `separate` helper
- add `separated` constructor
- `Date`
- add `Eq` instance
- add `Ord` instance
- `Filterable`
- add `filter` helper
- add `filterMap` helper
- add `partition` helper
- add `partitionMap` helper
- `Foldable`
- add `reduce` helper
- add `foldaMap` helper
- add `reduceRight` helper
- `FoldableWithIndex`
- add `reduceWithIndex` helper
- add `foldaMapWithIndex` helper
- add `reduceRightWithIndex` helper
- `function`
- add `getBooleanAlgebra`
- add `getSemigroup`
- add `getMonoid`
- add `getSemiring`
- add `getRing`
- add `getEndomorphismMonoid`
- `Functor`
- add `map` helper
- add `bindTo` helper
- add `flap` derivable, #1393 (@williamareynolds)
- `FunctorWithIndex`
- add `mapWithIndex` helper
- `Either`
- add `Pointed` instance
- add `Apply` instance
- add `getCompactable`
- add `getFilterable`
- add `FromEither` instance
- add `toUnion`, closes #1362
- add `foldW`
- add `match` alias
- add `matchW` alias
- add `orElseW`
- add `tryCatchK`
- add `fromOptionK`
- add `chainOptionK`
- `EitherT`
- split `getEitherM` into separated functions
- `Eq`
- add `getSemigroup`
- add `struct`
- add `tuple`
- `Identity`
- add `Pointed` instance
- add `Apply` instance
- `IO`
- add `Pointed` instance
- add `Apply` instance
- add `FromIO` instance
- `IOEither`
- add `Pointed` instance
- add `getCompactable`
- add `FromIO` instance
- add `FromEither` instance
- add `tryCatchK` combinator
- add `toUnion`
- add `foldW`
- add `match` alias
- add `matchW` alias
- add `orElseW`
- add `fromOptionK`
- add `chainOptionK`
- `Map`
- add `filterWithIndex` combinator
- add `filterMapWithIndex` combinator
- add `partitionWithIndex` combinator
- add `partitionMapWithIndex` combinator
- add `getTraversableWithIndex` instance
- add `getFoldableWithIndex` instance
- `Monoid`
- add `concatAll`
- add `min`
- add `max`
- add `reverse`
- add `struct`
- add `tuple`
- `NonEmptyArray`
- add `Pointed` instance
- add `Apply` instance
- add `concatAll`
- add `isNonEmpty` guard
- add `fromReadonlyNonEmptyArray` constructor
- add `chainWithIndex` combinator
- add `chop`
- add `splitAt`
- add `chunksOf`
- `Option`
- add `Pointed` instance
- add `Apply` instance
- add `foldW`
- add `match` alias
- add `matchW` alias
- add `tryCatchK`
- `OptionT`
- split `getOptionM` into separated functions
- `Ord`
- add `equalsDefault`
- add `reverse`
- add `tuple`
- `Ordering`
- add `Eq` instance
- add `Semigroup` instance
- add `Monoid` instance
- add `match`
- `Random`
- add `randomElem`
- `Reader`
- add `Pointed` instance
- add `Apply` instance
- export `first`, `second`, `left`, `right`
- `ReaderT`
- split `getReaderM` into separated functions
- `ReaderEither`
- add `Pointed` instance
- add `Apply` instance
- add `FromEither` instance
- add `getCompactable`
- add `getFilterable`
- add `toUnion`
- add `foldW`
- add `match` alias
- add `matchW` alias
- add `orElseW`
- add `fromOptionK`
- add `chainOptionK`
- `ReaderTask`
- add `Pointed` instance
- add `ApplyPar` instance
- add `ApplySeq` instance
- add `FromIO` instance
- add `FromTask` instance
- add `traverseSeqArrayWithIndex`
- add `traverseSeqArray`
- add `sequenceSeqArray`
- export `Chain` instance
- export `Monad` instance
- export `MonadIO` instance
- export `MonadTask` instance
- `ReaderTaskEither`
- add `Pointed` instance
- add `ApplyPar` instance
- add `ApplySeq` instance
- add `FromIO` instance
- add `FromTask` instance
- add `FromEither` instance
- add `getCompactable`
- add `getFilterable`
- add `toUnion`
- add `foldW`
- add `match` alias
- add `matchW` alias
- add `orElseW`
- add `fromOptionK`
- add `chainOptionK`
- export `Chain` instance
- export `Monad` instance
- export `MonadIO` instance
- export `MonadTask` instance
- export `MonadThrow` instance
- `ReadonlyArray`
- add `Pointed` instance
- add `Apply` instance
- add `getSemigroup`
- add `matchLeft` instance
- add `matchRight` instance
- add `size`
- better `unsafeInsertAt` signature
- better `chunksOf` signature, closes #1407
- `ReadonlyMap`
- add `filterWithIndex` combinator
- add `filterMapWithIndex` combinator
- add `partitionWithIndex` combinator
- add `partitionMapWithIndex` combinator
- add `getFunctorWithIndex`
- add `getFoldable`
- add `getFoldableWithIndex`
- add `getTraversable`
- add `getTraversableWithIndex`
- `ReadonlyNonEmptyArray`
- add `Pointed` instance
- add `Apply` instance
- add `concatAll`
- add `isNonEmpty`
- add `chainWithIndex`
- add `chop`
- add `splitAt`
- add `chunksOf`
- `ReadonlySet`
- add `isEmpty`
- add `size`
- add `toggle`
- `Ring`
- add `tuple`
- `Set`
- add `isEmpty`
- add `size`
- `Semigroup`
- add `constant`
- add `concatAll`
- add `intercalate`
- add `min`
- add `max`
- add `struct`
- add `tuple`
- add `first`
- add `last`
- add `assign`
- `Show`
- add `struct`
- add `tuple`
- `State`
- add `Pointed` instance
- add `Apply` instance
- `StateT`
- split `getStateM` into separated functions
- `StateReaderTaskEither`
- add `Pointed` instance
- add `Apply` instance
- add `Monad` instance
- add `FromIO` instance
- add `FromTask` instance
- add `FromEither` instance
- add `fromOptionK`
- add `chainOptionK`
- export `MonadIO` instance
- export `MonadTask` instance
- export `MonadThrow` instance
- `Task`
- add `Pointed` instance
- add `ApplyPar` instance
- add `ApplySeq` instance
- add `FromIO` instance
- add `FromTask` instance
- export `Chain` instance
- export `Monad` instance
- export `MonadIO` instance
- export `MonadTask` instance
- `TaskEither`
- add `Pointed` instance
- add `ApplyPar` instance
- add `ApplySeq` instance
- add `getCompactable`
- add `FromIO` instance
- add `FromTask` instance
- add `FromEither` instance
- add `toUnion`
- add `foldW`
- add `match` alias
- add `matchW` alias
- add `orElseW`
- add `fromOptionK`
- add `chainOptionK`
- export `Chain` instance
- export `Monad` instance
- export `MonadIO` instance
- export `MonadTask` instance
- export `MonadThrow` instance
- `TaskThese`
- add `Functor` instance
- add `Pointed` instance
- add `Bifunctor` instance
- add `toTuple2`
- add `getApply`
- add `FromIO` instance
- add `FromTask` instance
- add `fromEither` function
- add `FromEither` instance
- add `getChain` instance
- add `foldW`
- add `match` alias
- add `matchW` alias
- add `fromOption`
- add `fromOptionK`
- add `fromPredicate`
- `These`
- add `Pointed` instance
- add `of` function
- add `getApply`
- add `toTuple2`
- add `FromEither` instance
- add `fromOption` constructor
- add `foldW`
- add `match` alias
- add `matchW` alias
- add `fromOptionK`
- `TaskOption`
- export `Chain` instance
- export `Monad` instance
- `TheseT`
- split `getTheseM` into separated functions
- `Traversable`
- add `traverse` helper
- add `sequence` helper
- `Tree`
- add `Pointed` instance
- add `Apply` instance
- `Writer`
- add `getPointed`
- add `getApply`
- add `getApplicative`
- add `getChain`
- **Bug Fix**
- `ReadonlyRecord` / `Record`: remove `extends string` constraints in `singleton` / `insertAt`, closes #1413
- `TaskOption`
- fix `getOrElseW` signature
- **Internal**
- add `internal` module
- **Polish**
- the scope in `bindTo`, `bind`, `bindW`, `apS`, `apSW` is now correctly `readonly`
- fix `FromEither` type parameter order
- `Array` / `ReadonlyArray`
- assert arrays as non-empty when using `some`, #1424 (@thewilkybarkid)
- fix `matchLeft`, `matchRight` type parameter order
- `EitherT`
- add overloads for `Kind2`, `Kind3`, `Kind4`
- `OptionT`
- add overloads for `Kind2`, `Kind3`, `Kind4`
- `ReaderT`
- add overloads for `Kind2`, `Kind3`, `Kind4`
- `ReadonlyMap`
- sort keys in `getShow`
- `ReadonlySet`
- sort keys in `getShow`
- `StateT`
- add overloads for `Kind2`, `Kind3`
- `TheseT`
- add overloads for `Kind2`, `Kind3`, `Kind4`
# 2.10.0-rc.8
- **Polish**
- the scope in `bindTo`, `bind`, `bindW`, `apS`, `apSW` is now correctly `readonly`
- fix `FromEither` type parameter order
# 2.10.0-rc.7
- **Breaking Change** (with respect to `2.10.0-rc`)
- rename module `object` to `struct`
# 2.10.0-rc.6
- **Bug Fix**
- `ReadonlyNonEmptyArray`
- remove circular dependency on `NonEmptyArray`, closes #1443
- **Breaking Change** (with respect to `2.10.0-rc`)
- `EitherT`
- rename `match` to `matchE` and add `match`
- `IOEither`
- rename `match` / `matchW` to `matchE` / `matchWE` and add `match` / `matchW`
- `OptionT`
- rename `match` to `matchE` and add `match`
- `ReaderEither`
- rename `match` / `matchW` to `matchE` / `matchWE` and add `match` / `matchW`
- `ReaderTaskEither`
- rename `match` / `matchW` to `matchE` / `matchWE` and add `match` / `matchW`
- `TheseT`
- rename `match` to `matchE` and add `match`
- `TaskEither`
- rename `match` / `matchW` to `matchE` / `matchWE` and add `match` / `matchW`
- `TaskOption`
- rename `match` / `matchW` to `matchE` / `matchWE` and add `match` / `matchW`
- `TaskThese`
- rename `match` / `matchW` to `matchE` / `matchWE` and add `match` / `matchW`
# 2.10.0-rc.5
- **Bug Fix**
- `TaskOption`
- fix `getOrElseW` signature
- **Breaking Change** (with respect to `2.10.0-rc`)
- `OptionT`
- rename `none` to `zero` and change signature
- `ReaderT`
- remove `ask`, `asks` (they will be derived from the `FromReader` type-class in `2.11`)
- `Semigroup`
- move `assign` to `object` module and rename to `getAssignSemigroup`
- `ReaderT`
- remove `get`, `put`, `modify`, `gets` (they will be derived from the `FromState` type-class in `2.11`)
- **Deprecation**
- `Tuple`
- deprecate `mapLeft` in favour of `mapSnd`
- deprecate `map` in favour of `mapFst`
- `ReadonlyTuple`
- deprecate `mapLeft` in favour of `mapSnd`
- deprecate `map` in favour of `mapFst`
- **Polish**
- `Array` / `ReadonlyArray`
- assert arrays as non-empty when using `some`, #1424 (@thewilkybarkid)
- fix `matchLeft`, `matchRight` type parameter order
- `EitherT`
- add overloads for `Kind2`, `Kind3`, `Kind4`
- `OptionT`
- add overloads for `Kind2`, `Kind3`, `Kind4`
- `ReaderT`
- add overloads for `Kind2`, `Kind3`, `Kind4`
- `ReadonlyMap`
- sort keys in `getShow`
- `ReadonlySet`
- sort keys in `getShow`
- `StateT`
- add overloads for `Kind2`, `Kind3`
- `TheseT`
- add overloads for `Kind2`, `Kind3`, `Kind4`
- **Internal**
- add `internal` module
# 2.10.0-rc.4
- **Deprecations**
- `Array`
- deprecate `empty`
- `Map`
- deprecate `empty`
- `NonEmptyArray`
- deprecate `filter` in favour of `Array`'s `filter`
- deprecate `filterWithIndex` in favour of `Array`'s `filterWithIndex`
- `ReadonlyNonEmptyArray`
- deprecate `filter` in favour of `ReadonlyArray`'s `filter`
- deprecate `filterWithIndex` in favour of `ReadonlyArray`'s `filterWithIndex`
- `Record`
- deprecate `empty`
- **Polish**
- `NonEmptyArray`
- remove duplicated `append`, `prepend`, `isNonEmpty`
- `ReadonlyNonEmptyArray`
- remove duplicated `append`, `prepend`, `isNonEmpty`
# 2.10.0-rc.3
- **Deprecations**
- `Array`
- deprecate `cons` in favour of `prepend`
- deprecate `snoc` in favour of `append`
- `Ordering`
- deprecate `invert` in favour of `reverse`
- `ReadonlyMap`
- deprecate `insertAt` in favour of `upsertAt`
- `ReadonlyRecord`
- deprecate `insertAt` in favour of `upsertAt`
- `Map`
- deprecate `insertAt` in favour of `upsertAt`
- `NonEmptyArray`
- deprecate `cons` in favour of `prepend`
- deprecate `snoc` in favour of `append`
- deprecate `uncons` in favour of `unprepend`
- deprecate `unsnoc` in favour of `unappend`
- `Record`
- deprecate `insertAt` in favour of `upsertAt`
- `ReadonlyArray`
- deprecate `cons` in favour of `prepend`
- deprecate `snoc` in favour of `append`
- `ReadonlyNonEmptyArray`
- deprecate `insertAt`, Use `ReadonlyArray`'s `insertAt` instead
- deprecate `cons` in favour of `prepend`
- deprecate `snoc` in favour of `append`
- deprecate `uncons` in favour of `unprepend`
- deprecate `unsnoc` in favour of `unappend`
- `ReadonlySet`
- deprecate `fromArray` in favour of `fromReadonlyArray`
- `Set`
- deprecate `subset` in favour of `isSubset`
- **New Feature**
- `Array`
- add `size`
- better `unsafeInsertAt` signature
- better `chunksOf` signature
- add `getSemigroup`
- `Map`
- add `filterWithIndex` combinator
- add `filterMapWithIndex` combinator
- add `partitionWithIndex` combinator
- add `partitionMapWithIndex` combinator
- add `getTraversableWithIndex` instance
- add `getFoldableWithIndex` instance
- `NonEmptyArray`
- add `isNonEmpty` guard
- add `fromReadonlyNonEmptyArray` constructor
- add `chainWithIndex` combinator
- add `chop`
- add `splitAt`
- add `chunksOf`
- `Ordering`
- add `match`
- `ReadonlyArray`
- add `size`
- better `unsafeInsertAt` signature
- better `chunksOf` signature, closes #1407
- `ReadonlyNonEmptyArray`
- add `isNonEmpty`
- add `chainWithIndex`
- add `chop`
- add `splitAt`
- add `chunksOf`
- `ReadonlySet`
- add `isEmpty`
- add `size`
- add `toggle`
- `Set`
- add `isEmpty`
- add `size`
- `string`
- add `empty`
- add `isEmpty`
- add `size`
- **Bug Fix**
- `ReadonlyRecord` / `Record`: remove `extends string` constraints in `singleton` / `insertAt`, closes #1413
# 2.10.0-rc.2
- **Deprecations**
- `Choice`
- deprecate `splitChoice` in favour of `split`
- deprecate `fanin` in favour of `fanIn`
- `Strong`
- deprecate `splitStrong` in favour of `split`
- deprecate `fanout` in favour of `fanOut`
- **New Feature**
- `Reader`
- export `first`, `second`, `left`, `right`
- `ReaderTask`
- export `Chain` instance
- export `Monad` instance
- export `MonadIO` instance
- export `MonadTask` instance
- `ReaderTaskEither`
- export `Chain` instance
- export `Monad` instance
- export `MonadIO` instance
- export `MonadTask` instance
- export `MonadThrow` instance
- `StateReaderTaskEither`
- export `MonadIO` instance
- export `MonadTask` instance
- export `MonadThrow` instance
- `Task`
- export `Chain` instance
- export `Monad` instance
- export `MonadIO` instance
- export `MonadTask` instance
- `TaskEither`
- export `Chain` instance
- export `Monad` instance
- export `MonadIO` instance
- export `MonadTask` instance
- export `MonadThrow` instance
- `TaskOption`
- export `Chain` instance
- export `Monad` instance
- **Polish**
- `Compactable`
- split `compact` / `separate` constraints
# 2.10.0-rc.1
- **Deprecations**
- deprecate `pipeable` module, use the specific helpers instead
- deprecate `ValidationT` module, use `EitherT` instead
- deprecate "mega instances", use small, specific instances instead
- deprecate the old monad transformers, use the specific helpers instead
- `Applicative`
- deprecate `getApplicativeComposition`, use `ap` helper instead
- `Array`
- deprecate `prependToAll`, use `prependAll` instead
- `BooleanAlgebra`
- deprecate `booleanAlgebraBoolean`, use `boolean.BooleanAlgebra` instead
- deprecate `getFunctionBooleanAlgebra`, use `function.getBooleanAlgebra` instead
- deprecate `getDualBooleanAlgebra`, use `reverse` instead
- `Bounded`
- deprecate `boundedNumber`, use `number.Bounded` instead
- `Compactable`
- deprecate `getCompactableComposition`, use `compact`, `separate` helpers instead
- deprecate `Separated`, use `Separated.Separated` instead
- `Either`
- deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid`
- deprecate `getValidationSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getValidationMonoid` in favour of `Applicative.getApplicativeMonoid`
- deprecate `getValidation`, use `getApplicativeValidation` and `getAltValidation` instead
- deprecate `Json` type, use the `Json` module instead
- deprecate `parseJSON` type, use the `Json` module instead
- deprecate `stringifyJSON` type, use the `Json` module instead
- `Eq`
- deprecate `eqBoolean`, use `boolean.Eq` instead
- deprecate `eqString`, use `string.Eq` instead
- deprecate `eqNumber`, use `number.Eq` instead
- deprecate `eqDate`, use `Date.Eq` instead
- deprecate `getStructEq`, use `struct` instead
- deprecate `getTupleEq`, use `tuple` instead
- `Filterable`
- deprecate `getFilterableComposition`, use `filter`, `filterMap`, `partition`, `partitionMap` helpers instead
- `Foldable`
- deprecate `toArray` in favour of `toReadonlyArray`
- deprecate `getFoldableComposition`, use `reduce`, `foldMap`, `reduceRight` helpers instead
- `FoldableWithIndex`
- deprecate `getFoldableWithIndexComposition`, use `reduceWithIndex`, `foldMapWithIndex`, `reduceRightWithIndex` helpers instead
- `Functor`
- deprecate `getFunctorComposition`, use `map` helper instead
- `FunctorWithIndex`
- deprecate `getFunctorWithIndexComposition`, use `mapWithIndex` helper instead
- `IO`
- deprecate `getSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getMonoid` in favour of `Applicative.getApplicativeMonoid`
- deprecate `fromIO`
- `IOEither`
- deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid`
- deprecate `getSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getIOValidation`, use `getApplicativeIOValidation` and `getAltIOValidation` instead
- `Monoid`
- deprecate `monoidAll`, use `boolean.MonoidAll` instead
- deprecate `monoidAny`, use `boolean.MonoidAny` instead
- deprecate `getFunctionMonoid`, use `function.getMonoid` instead
- deprecate `getEndomorphismMonoid`, use `function.getEndomorphismMonoid` instead (**Note**. The execution order in
`function.getEndomorphismMonoid` is reversed)
- deprecate `monoidString`, use `string.Monoid` instead
- deprecate `monoidSum`, use `number.MonoidSum` instead
- deprecate `monoidProduct`, use `number.MonoidProduct` instead
- deprecate `fold`, use `concatAll` instead
- deprecate `getMeetMonoid`, use `min` instead
- deprecate `getJoinMonoid`, use `max` instead
- deprecate `getDualMonoid`, use `reverse` instead
- deprecate `getStructMonoid`, use `struct` instead
- deprecate `getTupleMonoid`, use `tuple` instead
- `NonEmptyArray`
- deprecate `fold`, use `concatAll` instead
- deprecate `prependToAll`, use `prependAll` instead
- `Option`
- deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid`
- `Ord`
- deprecate `ordBoolean`, use `boolean.Ord` instead
- deprecate `ordString`, use `string.Ord` instead
- deprecate `ordNumber`, use `number.Ord` instead
- deprecate `ordDate`, use `Date.Ord` instead
- deprecate `getDualOrd`, use `reverse` instead
- deprecate `getTupleOrd`, use `tuple` instead
- `Ordering`
- deprecate `eqOrdering`, use `Eq` instead
- deprecate `monoidOrdering`, use `Monoid` instead
- `Ring`
- deprecate `getFunctionRing`, use `function.getRing` instead
- `Reader`
- deprecate `getSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getMonoid` in favour of `Applicative.getApplicativeMonoid`
- `ReaderEither`
- deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid`
- deprecate `getSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getReaderValidation`, use `getApplicativeReaderValidation` and `getAltReaderValidation` instead
- deprecate `local`, Use `Reader`'s `local` instead
- `ReaderTask`
- deprecate `getSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getMonoid` in favour of `Applicative.getApplicativeMonoid`
- deprecate `run`
- deprecate `local`, Use `Reader`'s `local` instead
- `ReaderTaskEither`
- deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid`
- deprecate `getSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getReaderTaskValidation`, use `getApplicativeReaderTaskValidation` and `getAltReaderTaskValidation` instead
- deprecate `run`
- deprecate `local`, Use `Reader`'s `local` instead
- `ReaderTaskEither`
- deprecate `run`
- `ReadonlyArray`
- deprecate `prependToAll`, use `prependAll` instead
- `ReadonlyNonEmptyArray`
- deprecate `fold`, use `concatAll` instead
- deprecate `prependToAll`, use `prependAll` instead
- `ReadonlyRecord`
- deprecate `hasOwnProperty`, use `has` instead
- `Record`
- deprecate `hasOwnProperty`, use `has` instead
- `Ring`
- deprecate `getTupleRing`, use `tuple` instead
- `Semigroup`
- deprecate `semigroupAll`, use `boolean.SemigroupAll` instead
- deprecate `semigroupAny`, use `boolean.SemigroupAny` instead
- deprecate `getFunctionSemigroup`, use `function.getSemigroup` instead
- deprecate `semigroupString`, use `string.Semigroup` instead
- deprecate `semigroupSum`, use `number.SemigroupSum` instead
- deprecate `semigroupProduct`, use `number.SemigroupProduct` instead
- deprecate `fold`, use `concatAll` instead
- deprecate `getIntercalateSemigroup`, use `intercalate` instead
- deprecate `getMeetSemigroup`, use `min` instead
- deprecate `getJoinSemigroup`, use `max` instead
- deprecate `getDualSemigroup`, use `reverse` instead
- deprecate `getStructSemigroup`, use `struct` instead
- deprecate `getTupleSemigroup`, use `tuple` instead
- deprecate `getFirstSemigroup`, use `first` instead
- deprecate `getLastSemigroup`, use `last` instead
- deprecate `getObjectSemigroup`, use `assign` instead
- `Show`
- deprecate `showBoolean`, use `boolean.Show` instead
- deprecate `showString`, use `string.Show` instead
- deprecate `showNumber`, use `number.Show` instead
- deprecate `getStructShow`, use `struct` instead
- deprecate `getTupleShow`, use `tuple` instead
- `Task`
- deprecate `getSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getMonoid` in favour of `Applicative.getApplicativeMonoid`
- deprecate `fromTask`
- `TaskEither`
- deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid`
- deprecate `getSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `getTaskValidation`, use `getApplicativeTaskValidation` and `getAltTaskValidation` instead
- `TaskThese`
- deprecate `functorTaskThese` instance in favour of `Functor`
- deprecate `bifunctorTaskThese` instance in favour of `Bifunctor`
- deprecate `getSemigroup` in favour of `Apply.getApplySemigroup`
- deprecate `toTuple` in favour of `toTuple2`
- `These`
- deprecate `toTuple` in favour of `toTuple2`
- `Traversable`
- deprecate `getTraversableComposition`, use `traverse`, `sequence` helpers instead
- **New Feature**
- add `Pointed` type class
- add `FromEither` type class
- add `FromIO` type class
- add `FromTask` type class
- add `TaskOption` module
- add `string` module
- add `number` module
- add `Separated` module (@YBogomolov)
- add `Json` module
- `Apply`
- add `ap` helper
- add `apS` helper
- add `apFirst` helper
- add `apSecond` helper
- add `getApplySemigroup`
- `Applicative`
- add `getApplicativeMonoid`
- `Array`
- add `Pointed` instance
- add `Apply` instance
- add `matchLeft` alias
- add `matchRight` alias
- `boolean`
- add `foldW`
- add `match` alias
- add `matchW` alias
- add `Eq` instance
- add `BooleanAlgebra` instance
- add `SemigroupAll` instance
- add `SemigroupAny` instance
- add `MonoidAll` instance
- add `MonoidAny` instance
- add `Ord` instance
- add `Show` instance
- `BooleanAlgebra`
- add `reverse`
- `Chain`
- add `bind` helper
- add `chainFirst` helper
- `Compactable`
- add `compact` helper
- add `separate` helper
- add `separated` constructor
- `Date`
- add `Eq` instance
- add `Ord` instance
- `Filterable`
- add `filter` helper
- add `filterMap` helper
- add `partition` helper
- add `partitionMap` helper
- `Foldable`
- add `reduce` helper
- add `foldaMap` helper
- add `reduceRight` helper
- `FoldableWithIndex`
- add `reduceWithIndex` helper
- add `foldaMapWithIndex` helper
- add `reduceRightWithIndex` helper
- `function`
- add `getBooleanAlgebra`
- add `getSemigroup`
- add `getMonoid`
- add `getSemiring`
- add `getRing`
- add `getEndomorphismMonoid`
- `Functor`
- add `map` helper
- add `bindTo` helper
- add `flap` derivable, #1393 (@williamareynolds)
- `FunctorWithIndex`
- add `mapWithIndex` helper
- `Either`
- add `Pointed` instance
- add `Apply` instance
- add `getCompactable`
- add `getFilterable`
- add `FromEither` instance
- add `toUnion`, closes #1362
- add `foldW`
- add `match` alias
- add `matchW` alias
- add `orElseW`
- add `tryCatchK`
- add `fromOptionK`
- add `chainOptionK`
- `EitherT`
- split `getEitherM` into separated functions
- `Eq`
- add `getSemigroup`
- add `struct`
- add `tuple`
- `Identity`
- add `Pointed` instance
- add `Apply` instance
- `IO`
- add `Pointed` instance
- add `Apply` instance
- add `FromIO` instance
- `IOEither`
- add `Pointed` instance
- add `getCompactable`
- add `FromIO` instance
- add `FromEither` instance
- add `tryCatchK` combinator
- add `toUnion`
- add `foldW`
- add `match` alias
- add `matchW` alias
- add `orElseW`
- add `fromOptionK`
- add `chainOptionK`
- `Monoid`
- add `concatAll`
- add `min`
- add `max`
- add `reverse`
- add `struct`
- add `tuple`
- `NonEmptyArray`
- add `Pointed` instance
- add `Apply` instance
- add `concatAll`
- `Option`
- add `Pointed` instance
- add `Apply` instance
- add `foldW`
- add `match` alias
- add `matchW` alias
- add `tryCatchK`
- `OptionT`
- split `getOptionM` into separated functions
- `Ord`
- add `equalsDefault`
- add `reverse`
- add `tuple`
- `Ordering`
- add `Eq` instance
- add `Semigroup` instance
- add `Monoid` instance
- `Random`
- add `randomElem`
- `Reader`
- add `Pointed` instance
- add `Apply` instance
- `ReaderT`
- split `getReaderM` into separated functions
- `ReaderEither`
- add `Pointed` instance
- add `Apply` instance
- add `FromEither` instance
- add `getCompactable`
- add `getFilterable`
- add `toUnion`
- add `foldW`
- add `match` alias
- add `matchW` alias
- add `orElseW`
- add `fromOptionK`
- add `chainOptionK`
- `ReaderTask`
- add `Pointed` instance
- add `ApplyPar` instance
- add `ApplySeq` instance
- add `FromIO` instance
- add `FromTask` instance
- add `traverseSeqArrayWithIndex`
- add `traverseSeqArray`
- add `sequenceSeqArray`
- `ReaderTaskEither`
- add `Pointed` instance
- add `ApplyPar` instance
- add `ApplySeq` instance
- add `FromIO` instance
- add `FromTask` instance
- add `FromEither` instance
- add `getCompactable`
- add `getFilterable`
- add `toUnion`
- add `foldW`
- add `match` alias
- add `matchW` alias
- add `orElseW`
- add `fromOptionK`
- add `chainOptionK`
- `ReadonlyArray`
- add `Pointed` instance
- add `Apply` instance
- add `getSemigroup`
- add `matchLeft` instance
- add `matchRight` instance
- `ReadonlyMap`
- add `filterWithIndex` combinator
- add `filterMapWithIndex` combinator
- add `partitionWithIndex` combinator
- add `partitionMapWithIndex` combinator
- add `getFunctorWithIndex`
- add `getFoldable`
- add `getFoldableWithIndex`
- add `getTraversable`
- add `getTraversableWithIndex`
- `ReadonlyNonEmptyArray`
- add `Pointed` instance
- add `Apply` instance
- add `concatAll`
- `Ring`
- add `tuple`
- `Semigroup`
- add `constant`
- add `concatAll`
- add `intercalate`
- add `min`
- add `max`
- add `struct`
- add `tuple`
- add `first`
- add `last`
- add `assign`
- `Show`
- add `struct`
- add `tuple`
- `State`
- add `Pointed` instance
- add `Apply` instance
- `StateT`
- split `getStateM` into separated functions
- `StateReaderTaskEither`
- add `Pointed` instance
- add `Apply` instance
- add `Monad` instance
- add `FromIO` instance
- add `FromTask` instance
- add `FromEither` instance
- add `fromOptionK`
- add `chainOptionK`
- `Task`
- add `Pointed` instance
- add `ApplyPar` instance
- add `ApplySeq` instance
- add `FromIO` instance
- add `FromTask` instance
- `TaskEither`
- add `Pointed` instance
- add `ApplyPar` instance
- add `ApplySeq` instance
- add `getCompactable`
- add `FromIO` instance
- add `FromTask` instance
- add `FromEither` instance
- add `toUnion`
- add `foldW`
- add `match` alias
- add `matchW` alias
- add `orElseW`
- add `fromOptionK`
- add `chainOptionK`
- `TaskThese`
- add `Functor` instance
- add `Pointed` instance
- add `Bifunctor` instance
- add `toTuple2`
- add `getApply`
- add `FromIO` instance
- add `FromTask` instance
- add `fromEither` function
- add `FromEither` instance
- add `getChain` instance
- add `foldW`
- add `match` alias
- add `matchW` alias
- add `fromOption`
- add `fromOptionK`
- add `fromPredicate`
- `These`
- add `Pointed` instance
- add `of` function
- add `getApply`
- add `toTuple2`
- add `FromEither` instance
- add `fromOption` constructor
- add `foldW`
- add `match` alias
- add `matchW` alias
- add `fromOptionK`
- `TheseT`
- split `getTheseM` into separated functions
- `Traversable`
- add `traverse` helper
- add `sequence` helper
- `Tree`
- add `Pointed` instance
- add `Apply` instance
- `Writer`
- add `getPointed`
- add `getApply`
- add `getApplicative`
- add `getChain`
# 2.9.5
- **Polish**
- `Array`, `ReadonlyArray`: change `scanLeft` and `scanRight` to return `NonEmptyArray`, `ReadonlyNonEmptyArray`, #1391 (@willheslam)
# 2.9.4
- **Bug Fix**
- fix `filter` overloads in `NonEmptyArray` / `ReadonlyNonEmptyArray`, closes #1388 (@gcanti)
# 2.9.3
- **Polish**
- add more `/*#__PURE__*/` comments to improve tree shaking, #1370 (@OliverJAsh)
# 2.9.2
- **Polish**
- add more `/*#__PURE__*/` comments to improve tree shaking, #1368 (@OliverJAsh)
# 2.9.1
- **Polish**
- `Array` / `ReadonlyArray`
- `sort`: return the input when length <= 1, closes #1357 (@gcanti)
- `uniq`: return the input when length <= 1 (@gcanti)
# 2.9.0
- **New Feature**
- `Array`
- add `altW` (@gcanti)
- add `intersperse` (@marcotoniut)
- add `prependToAll` (@marcotoniut)
- add `every` (@gcanti)
- add `some` (@gcanti)
- add `Do` (@gcanti)
- `Either`
- add `altW` (@gcanti)
- add `fromNullableK` (@gcanti)
- add `chainNullableK` (@gcanti)
- add `traverseArrayWithIndex` (@mohaalak @iamomiid)
- add `traverseArray` (@mohaalak @iamomiid)
- add `sequenceArray` (@mohaalak @iamomiid)
- add `Do` (@gcanti)
- add `filterOrElseW` (@gcanti)
- `Identity`
- add `altW` (@gcanti)
- add `Do` (@gcanti)
- `IO`
- add `traverseArrayWithIndex` (@mohaalak @iamomiid)
- add `traverseArray` (@mohaalak @iamomiid)
- add `sequenceArray` (@mohaalak @iamomiid)
- add `Do` (@gcanti)
- `IOEither`
- add `altW` (@gcanti)
- add `traverseArrayWithIndex` (@mohaalak @iamomiid)
- add `traverseArray` (@mohaalak @iamomiid)
- add `sequenceArray` (@mohaalak @iamomiid)
- add `traverseSeqArrayWithIndex` (@mohaalak @iamomiid)
- add `traverseSeqArray` (@mohaalak @iamomiid)
- add `sequenceSeqArray` (@mohaalak @iamomiid)
- add `Do` (@gcanti)
- add `filterOrElseW` (@gcanti)
- `NonEmptyArray`
- add `altW` (@gcanti)
- add `uncons` (@marcotoniut)
- add `unsnoc` (@marcotoniut)
- add `intersperse` (@marcotoniut)
- add `prependToAll` (@marcotoniut)
- add `Do` (@gcanti)
- `Option`
- add `altW` (@gcanti)
- add `fromNullableK` (@gcanti)
- add `chainNullableK` (@gcanti)
- add `traverseArrayWithIndex` (@mohaalak @iamomiid)
- add `traverseArray` (@mohaalak @iamomiid)
- add `sequenceArray` (@mohaalak @iamomiid)
- add `Do` (@gcanti)
- `Reader`
- add `traverseArrayWithIndex` (@mohaalak @iamomiid)
- add `traverseArray` (@mohaalak @iamomiid)
- add `sequenceArray` (@mohaalak @iamomiid)
- add `Do` (@gcanti)
- `ReaderEither`
- add `altW` (@gcanti)
- add `traverseArrayWithIndex` (@mohaalak @iamomiid)
- add `traverseArray` (@mohaalak @iamomiid)
- add `sequenceArray` (@mohaalak @iamomiid)
- add `Do` (@gcanti)
- add `filterOrElseW` (@gcanti)
- `ReaderTask`
- add `traverseArrayWithIndex` (@mohaalak @iamomiid)
- add `traverseArray` (@mohaalak @iamomiid)
- add `sequenceArray` (@mohaalak @iamomiid)
- add `traverseSeqArrayWithIndex` (@mohaalak @iamomiid)
- add `traverseSeqArray` (@mohaalak @iamomiid)
- add `sequenceSeqArray` (@mohaalak @iamomiid)
- add `Do` (@gcanti)
- `ReaderTaskEither`
- add `altW` (@gcanti)
- add `traverseArrayWithIndex` (@mohaalak @iamomiid)
- add `traverseArray` (@mohaalak @iamomiid)
- add `sequenceArray` (@mohaalak @iamomiid)
- add `traverseSeqArrayWithIndex` (@mohaalak @iamomiid)
- add `traverseSeqArray` (@mohaalak @iamomiid)
- add `sequenceSeqArray` (@mohaalak @iamomiid)
- add `Do` (@gcanti)
- add `filterOrElseW` (@gcanti)
- `ReadonlyArray`
- add `altW` (@gcanti)
- add `intersperse` (@marcotoniut)
- add `prependToAll` (@marcotoniut)
- add `every` (@gcanti)
- add `some` (@gcanti)
- add `Do` (@gcanti)
- `ReadonlyNonEmptyArray`
- add `altW` (@gcanti)
- add `uncons` (@marcotoniut)
- add `unsnoc` (@marcotoniut)
- add `intersperse` (@marcotoniut)
- add `prependToAll` (@marcotoniut)
- add `Do` (@gcanti)
- `State`
- add `traverseArrayWithIndex` (@mohaalak @iamomiid)
- add `traverseArray` (@mohaalak @iamomiid)
- add `sequenceArray` (@mohaalak @iamomiid)
- `StateReaderTaskEither`
- add `altW` (@gcanti)
- add `traverseArrayWithIndex` (@mohaalak @iamomiid)
- add `traverseArray` (@mohaalak @iamomiid)
- add `sequenceArray` (@mohaalak @iamomiid)
- add `filterOrElseW` (@gcanti)
- `Task`
- add `traverseArrayWithIndex` (@mohaalak @iamomiid)
- add `traverseArray` (@mohaalak @iamomiid)
- add `sequenceArray` (@mohaalak @iamomiid)
- add `traverseSeqArrayWithIndex` (@mohaalak @iamomiid)
- add `traverseSeqArray` (@mohaalak @iamomiid)
- add `sequenceSeqArray` (@mohaalak @iamomiid)
- add `Do` (@gcanti)
- `TaskEither`
- add `altW` (@gcanti)
- add `traverseArrayWithIndex` (@mohaalak @iamomiid)
- add `traverseArray` (@mohaalak @iamomiid)
- add `sequenceArray` (@mohaalak @iamomiid)
- add `traverseSeqArrayWithIndex` (@mohaalak @iamomiid)
- add `traverseSeqArray` (@mohaalak @iamomiid)
- add `sequenceSeqArray` (@mohaalak @iamomiid)
- add `Do` (@gcanti)
- add `filterOrElseW` (@gcanti)
- `Tree`
- add `Do` (@gcanti)
- **Deprecation**
- `Option`
- deprecate `mapNullable` in favour of `chainNullableK` (@gcanti)
- `StateReaderTaskEither`
- deprecate `stateReaderTaskEitherSeq` because is useless, `stateReaderTaskEither` is already sequential (@gcanti)
# 2.8.6
- **Bug Fix**
- fix #1350 (@gcanti)
# 2.8.5
- **Polish**
- `IOEither`
- export missing `of` function (@gcanti)
- `ReaderEither`
- export missing `of` function (@gcanti)
# 2.8.4
- **Polish**
- `IOEither`
- add `ApplicativePar` instance (@gcanti)
- add `ApplicativeSeq` instance (@gcanti)
- **Deprecation**
- `IOEither`
- deprecate `Applicative` in favour of `ApplicativePar` (@gcanti)
# 2.8.3
- **Polish**
- `Reader`
- export `Strong` instance (@urgent)
- export `Choice` instance (@gcanti)
# 2.8.2
- **Polish**
- increase the supported number of arguments of pipe function (@heka1024)
- **Bug fix**
- revert `groupBy` change in #1286 (@gcanti)
- **Internal**
- define all non-pipeable internal functions in terms of the corresponding pipeable versions (@gcanti)
# 2.8.1
- **Polish**
- fix `HKT` typings duplication (which might break module augmentation)
# 2.8.0
- **New Feature**
- expose `fp-ts` modules without lib/es6 prefix, #1241 (@StefanoMagrassi)
- `Array`
- add `apS` (@gcanti)
- add `bind` (@gcanti)
- add `bindTo` (@gcanti)
- `Either`
- add `apW` (@gcanti)
- add `apS` (@gcanti)
- add `apSW` (@gcanti)
- add `bind` (@gcanti)
- add `bindTo` (@gcanti)
- add `bindW` (@gcanti)
- add `chainFirstW`, #1273 (@leemhenson)
- add `getFilterable` (@gcanti)
- `Foldable`
- add `toArray`, #1272 (@newswim)
- add `reduceM` (@gcanti)
- `Identity`
- add `apS` (@gcanti)
- add `bind` (@gcanti)
- add `bindTo` (@gcanti)
- `IO`
- add `apS` (@gcanti)
- add `bind` (@gcanti)
- add `bindTo` (@gcanti)
- `IOEither`
- add `apS` (@gcanti)
- add `apSW` (@gcanti)
- add `bind` (@gcanti)
- add `bindTo` (@gcanti)
- add `bindW` (@gcanti)
- add `chainFirstW`, #1273 (@leemhenson)
- `NonEmptyArray`
- add `apS` (@gcanti)
- add `bind` (@gcanti)
- add `bindTo` (@gcanti)
- relax `group` signature (@gcanti)
- relax `groupBy` signature (@gcanti)
- relax `groupSort` signature (@gcanti)
- relax `sort` signature (@gcanti)
- `Option`
- add `apS` (@gcanti)
- add `bind` (@gcanti)
- add `bindTo` (@gcanti)
- `Reader`
- add `apW` (@gcanti)
- add `apS` (@gcanti)
- add `apSW` (@gcanti)
- add `bind` (@gcanti)
- add `bindTo` (@gcanti)
- add `bindW` (@gcanti)
- `ReaderEither`
- add `apS` (@gcanti)
- add `apSW` (@gcanti)
- add `bind` (@gcanti)
- add `bindTo` (@gcanti)
- add `bindW` (@gcanti)
- add `chainFirstW`, #1273 (@leemhenson)
- `ReaderTask`
- add `apS` (@gcanti)
- add `apSW` (@gcanti)
- add `bind` (@gcanti)
- add `bindTo` (@gcanti)
- add `bindW` (@gcanti)
- `ReaderTaskEither`
- add `apS` (@gcanti)
- add `apSW` (@gcanti)
- add `bind` (@gcanti)
- add `bindTo` (@gcanti)
- add `bindW` (@gcanti)
- add `chainFirstW`, #1273 (@leemhenson)
- `ReadonlyArray`
- add `apS` (@gcanti)
- add `bind` (@gcanti)
- add `bindTo` (@gcanti)
- `ReadonlyNonEmptyArray`
- add `apS` (@gcanti)
- add `bind` (@gcanti)
- add `bindTo` (@gcanti)
- relax `group` signature (@gcanti)
- relax `groupBy` signature (@gcanti)
- relax `groupSort` signature (@gcanti)
- relax `sort` signature (@gcanti)
- `State`
- add `apS` (@gcanti)
- add `bind` (@gcanti)
- add `bindTo` (@gcanti)
- add `evaluate` (@gcanti)
- add `execute` (@gcanti)
- `StateReaderTaskEither`
- add `apS` (@gcanti)
- add `apSW` (@gcanti)
- add `bind` (@gcanti)
- add `bindTo` (@gcanti)
- add `bindW` (@gcanti)
- add `chainFirstW`, #1273 (@leemhenson)
- add `evaluate` (@gcanti)
- add `execute` (@gcanti)
- `Task`
- add `apS` (@gcanti)
- add `bind` (@gcanti)
- add `bindTo` (@gcanti)
- `TaskEither`
- add `apS` (@gcanti)
- add `apSW` (@gcanti)
- add `bind` (@gcanti)
- add `bindTo` (@gcanti)
- add `bindW` (@gcanti)
- add `chainFirstW`, #1273 (@leemhenson)
- `Tree`
- add `apS` (@gcanti)
- add `bind` (@gcanti)
- add `bindTo` (@gcanti)
- `Writer`
- add `evaluate` (@gcanti)
- add `execute` (@gcanti)
- **Deprecation**
- `Foldable`
- deprecate `foldM` in favour of `reduceM` (@gcanti)
- `State`
- deprecate `evalState` in favour of `evaluate` (@gcanti)
- deprecate `execState` in favour of `execute` (@gcanti)
- `StateReaderTaskEither`
- deprecate `evalState` in favour of `evaluate` (@gcanti)
- deprecate `execState` in favour of `execute` (@gcanti)
- `Writer`
- deprecate `evalWriter` in favour of `evaluate` (@gcanti)
- deprecate `execWriter` in favour of `execute` (@gcanti)
# 2.7.1
- **Bug Fix**
- `ReadonlyArray`
- fix `FunctorWithIndex` instance name (@gcanti)
- fix `Functor` instance name (@gcanti)
- **Polish**
- `Array`
- relax `sort` signature (@gcanti)
- relax `sortBy` signature (@gcanti)
- `Map`
- export `mapWithIndex` (@gcanti)
- `ReadonlyArray`
- relax `sort` signature (@gcanti)
- relax `sortBy` signature (@gcanti)
- `ReadonlyMap`
- export `mapWithIndex` (@gcanti)
# 2.7.0
- **Bug Fix**
- `These`
- fix `ap` implementation in `getMonad` function (@gcanti)
- **Polish**
- improve performance of sequenceT and sequenceS, fix #1255 (@gcanti)
- **New Feature**
- `function`
- add `hole` (type hole simulation) (@gcanti)
- `Array`
- add `chainWithIndex`, #1256 (@OliverJAsh)
- add `Functor` instance (@gcanti)
- add `FunctorWithIndex` instance (@gcanti)
- add `Applicative` instance (@gcanti)
- add `Monad` instance (@gcanti)
- add `Unfoldable` instance (@gcanti)
- add `Alt` instance (@gcanti)
- add `Alternative` instance (@gcanti)
- add `Extend` instance (@gcanti)
- add `Compactable` instance (@gcanti)
- add `Filterable` instance (@gcanti)
- add `FilterableWithIndex` instance (@gcanti)
- add `Foldable` instance (@gcanti)
- add `FoldableWithIndex` instance (@gcanti)
- add `Traversable` instance (@gcanti)
- add `TraversableWithIndex` instance (@gcanti)
- add `Witherable` instance (@gcanti)
- `Const`
- add `Functor` instance (@gcanti)
- add `Contravariant` instance (@gcanti)
- add `Bifunctor` instance (@gcanti)
- `Either`
- add `getApplicativeValidation` constrained instance (@gcanti)
- add `getAltValidation` constrained instance (@gcanti)
- add `Functor` instance (@gcanti)
- add `Applicative` instance (@gcanti)
- add `Monad` instance (@gcanti)
- add `Foldable` instance (@gcanti)
- add `Traversable` instance (@gcanti)
- add `Bifunctor` instance (@gcanti)
- add `Alt` instance (@gcanti)
- add `Extend` instance (@gcanti)
- add `ChainRec` instance (@gcanti)
- add `MonadThrow` instance (@gcanti)
- `Eq`
- add `Contravariant` instance (@gcanti)
- `Identity`
- add `Functor` instance (@gcanti)
- add `Applicative` instance (@gcanti)
- add `Monad` instance (@gcanti)
- add `Foldable` instance (@gcanti)
- add `Traversable` instance (@gcanti)
- add `Alt` instance (@gcanti)
- add `Comonad` instance (@gcanti)
- add `ChainRec` instance (@gcanti)
- `IO`
- add `Functor` instance (@gcanti)
- add `Applicative` instance (@gcanti)
- add `Monad` instance (@gcanti)
- add `MonadIO` instance (@gcanti)
- add `ChainRec` instance (@gcanti)
- `IOEither`
- add `getApplicativeIOValidation` constrained instance (@gcanti)
- add `getAltIOValidation` constrained instance (@gcanti)
- add `Functor` instance (@gcanti)
- add `Applicative` instance (@gcanti)
- add `Monad` instance (@gcanti)
- add `Bifunctor` instance (@gcanti)
- add `Alt` instance (@gcanti)
- add `MonadIO` instance (@gcanti)
- add `MonadThrow` instance (@gcanti)
- `Map`
- add `Functor` instance (@gcanti)
- add `Compactable` instance (@gcanti)
- add `Filterable` instance (@gcanti)
- `NonEmptyArray`
- add `Functor` instance (@gcanti)
- add `FunctorWithIndex` instance (@gcanti)
- add `Applicative` instance (@gcanti)
- add `Monad` instance (@gcanti)
- add `Foldable` instance (@gcanti)
- add `FoldableWithIndex` instance (@gcanti)
- add `Traversable` instance (@gcanti)
- add `TraversableWithIndex` instance (@gcanti)
- add `Alt` instance (@gcanti)
- add `Comonad` instance (@gcanti)
- `Option`
- add `Functor` instance (@gcanti)
- add `Applicativ` instance (@gcanti)
- add `Monad` instance (@gcanti)
- add `Foldable` instance (@gcanti)
- add `Alt` instance (@gcanti)
- add `Alternative` instance (@gcanti)
- add `Extend` instance (@gcanti)
- add `Compactable` instance (@gcanti)
- add `Filterable` instance (@gcanti)
- add `Traversable` instance (@gcanti)
- add `Witherable` instance (@gcanti)
- add `MonadThrow` instance (@gcanti)
- `Ord`
- add `ContravariantOrd` instance (@gcanti)
- `Reader`
- add `Functor` instance (@gcanti)
- add `Applicative` instance (@gcanti)
- add `Monad` instance (@gcanti)
- add `Profunctor` instance (@gcanti)
- add `Category` instance (@gcanti)
- add `String` instance (@gcanti)
- add `Choice` instance (@gcanti)
- `ReaderEither`
- add `getApplicativeReaderValidation` constrained instance (@gcanti)
- add `getAltReaderValidation` constrained instance (@gcanti)
- add `Functor` instance (@gcanti)
- add `Applicative` instance (@gcanti)
- add `Monad` instance (@gcanti)
- add `Bifunctor` instance (@gcanti)
- add `Alt` instance (@gcanti)
- add `MonadThrow` instance (@gcanti)
- `ReaderTask`
- add `Functor` instance (@gcanti)
- add `ApplicativePar` instance (@gcanti)
- add `ApplicativeSeq` instance (@gcanti)
- `ReaderTaskEither`
- add `getApplicativeReaderTaskValidation` constrained instance (@gcanti)
- add `getAltReaderTaskValidation` constrained instance (@gcanti)
- add `Functor` instance (@gcanti)
- add `ApplicativePar` instance (@gcanti)
- add `ApplicativeSeq` instance (@gcanti)
- add `Bifunctor` instance (@gcanti)
- add `Alt` instance (@gcanti)
- `ReadonlyArray`
- add `chainWithIndex`, #1256 (@OliverJAsh)
- add `Functor` instance (@gcanti)
- add `FunctorWithIndex` instance (@gcanti)
- add `Applicative` instance (@gcanti)
- add `Monad` instance (@gcanti)
- add `Unfoldable` instance (@gcanti)
- add `Alt` instance (@gcanti)
- add `Alternative` instance (@gcanti)
- add `Extend` instance (@gcanti)
- add `Compactable` instance (@gcanti)
- add `Filterable` instance (@gcanti)
- add `FilterableWithIndex` instance (@gcanti)
- add `Foldable` instance (@gcanti)
- add `FoldableWithIndex` instance (@gcanti)
- add `Traversable` instance (@gcanti)
- add `TraversableWithIndex` instance (@gcanti)
- add `Witherable` instance (@gcanti)
- `ReadonlyMap`
- add `Functor` instance (@gcanti)
- add `Compactable` instance (@gcanti)
- add `Filterable` instance (@gcanti)
- `ReadonlyNonEmptyArray`
- add `Functor` instance (@gcanti)
- add `FunctorWithIndex` instance (@gcanti)
- add `Applicative` instance (@gcanti)
- add `Monad` instance (@gcanti)
- add `Foldable` instance (@gcanti)
- add `FoldableWithIndex` instance (@gcanti)
- add `Traversable` instance (@gcanti)
- add `TraversableWithIndex` instance (@gcanti)
- add `Alt` instance (@gcanti)
- add `Comonad` instance (@gcanti)
- `ReadonlyRecord`
- add `Functor` instance (@gcanti)
- add `FunctorWithIndex` instance (@gcanti)
- add `Foldable` instance (@gcanti)
- add `Compactable` instance (@gcanti)
- add `Filterable` instance (@gcanti)
- add `FilterableWithIndex` instance (@gcanti)
- add `Traversable` instance (@gcanti)
- add `TraversableWithIndex` instance (@gcanti)
- add `Witherable` instance (@gcanti)
- `ReadonlyTuple`
- add `Functor` instance (@gcanti)
- add `Bifunctor` instance (@gcanti)
- add `Semigroupoid` instance (@gcanti)
- add `Comonad` instance (@gcanti)
- add `Foldable` instance (@gcanti)
- add `Traversable` instance (@gcanti)
- `Record`
- add `Functor` instance (@gcanti)
- add `FunctorWithIndex` instance (@gcanti)
- add `Foldable` instance (@gcanti)
- add `Compactable` instance (@gcanti)
- add `Filterable` instance (@gcanti)
- add `FilterableWithIndex` instance (@gcanti)
- add `Traversable` instance (@gcanti)
- add `TraversableWithIndex` instance (@gcanti)
- add `Witherable` instance (@gcanti)
- `State`
- add `Functor` instance (@gcanti)
- add `Applicative` instance (@gcanti)
- add `Monad` instance (@gcanti)
- `Store`
- add `Functor` instance (@gcanti)
- add `Comonad` instance (@gcanti)
- `StateReaderTaskEither`
- add `Functor` instance (@gcanti)
- add `Applicative` instance (@gcanti)
- add `Bifunctor` instance (@gcanti)
- add `Alt` instance (@gcanti)
- `Task`
- add `Functor` instance (@gcanti)
- add `ApplicativePar` instance (@gcanti)
- add `ApplicativeSeq` instance (@gcanti)
- `TaskEither`
- add `getApplicativeTaskValidation` constrained instance (@gcanti)
- add `getAltTaskValidation` constrained instance (@gcanti)
- add `Functor` instance (@gcanti)
- add `ApplicativePar` instance (@gcanti)
- add `ApplicativeSeq` instance (@gcanti)
- add `Bifunctor` instance (@gcanti)
- add `Alt` instance (@gcanti)
- `TaskThese`
- add `Functor` instance (@gcanti)
- add `Bifunctor` instance (@gcanti)
- `These`
- add `getApplicative` constrained instance (@gcanti)
- add `Functor` instance (@gcanti)
- add `Bifunctor` instance (@gcanti)
- add `Foldable` instance (@gcanti)
- add `Traversable` instance (@gcanti)
- `Traced`
- rename `traced` to `Functor` for consistency (@gcanti)
- `Tree`
- add `Functor` instance (@gcanti)
- add `Applicative` instance (@gcanti)
- add `Monad` instance (@gcanti)
- add `Foldable` instance (@gcanti)
- add `Traversable` instance (@gcanti)
- add `Comonad` instance (@gcanti)
- `Writer`
- add `Functor` instance (@gcanti)
- `Tuple`
- add `Functor` instance (@gcanti)
- add `Bifunctor` instance (@gcanti)
- add `Semigroupoid` instance (@gcanti)
- add `Comonad` instance (@gcanti)
- add `Foldable` instance (@gcanti)
- add `Traversable` instance (@gcanti)
# 2.6.7
- **Polish**
- refine `Either.parseJSON` return type, #1252 (@OliverJAsh)
- add missing `chainW` to `ReaderTask`, #1254 (@adameier)
# 2.6.6
- **Polish**
- `Array`
- export `unfold` (@gcanti)
- make `lookup` data-last (@gcanti)
- make `elem` data-last (@gcanti)
- make `difference` data-last (@gcanti)
- make `intersection` data-last (@gcanti)
- make `union` data-last (@gcanti)
- make `zip` data-last (@gcanti)
- make `cons` data-last (@gcanti)
- `Map`
- make `member` data-last (@gcanti)
- make `elem` data-last (@gcanti)
- make `lookup` data-last (@gcanti)
- make `lookupWithKey` data-last (@gcanti)
- make `isSubmap` data-last (@gcanti)
- `NonEmptyArray`
- make `zip` data-last (@gcanti)
- `ReadonlyArray`
- export `unfold` (@gcanti)
- make `lookup` data-last (@gcanti)
- make `elem` data-last (@gcanti)
- make `difference` data-last (@gcanti)
- make `intersection` data-last (@gcanti)
- make `union` data-last (@gcanti)
- make `zip` data-last (@gcanti)
- make `cons` data-last (@gcanti)
- `ReadonlyMap`
- make `member` data-last (@gcanti)
- make `elem` data-last (@gcanti)
- make `lookup` data-last (@gcanti)
- make `lookupWithKey` data-last (@gcanti)
- make `isSubmap` data-last (@gcanti)
- `ReadonlyNonEmptyArray`
- make `zip` data-last (@gcanti)
- `ReadonlyRecord`
- make `isSubrecord` data-last (@gcanti)
- make `lookup` data-last (@gcanti)
- make `elem` data-last (@gcanti)
- `ReadonlySet`
- make `isSubset` data-last (@gcanti)
- make `elem` data-last (@gcanti)
- make `union` data-last (@gcanti)
- make `intersection` data-last (@gcanti)
- make `difference` data-last (@gcanti)
- `Record`
- make `isSubrecord` data-last (@gcanti)
- make `lookup` data-last (@gcanti)
- make `elem` data-last (@gcanti)
- `Set`
- make `subset` data-last (@gcanti)
- make `elem` data-last (@gcanti)
- make `union` data-last (@gcanti)
- make `intersection` data-last (@gcanti)
- make `difference` data-last (@gcanti)
- `Semigroup`
- make `fold` data-last (@gcanti)
# 2.6.5
- **Polish**
- export a pipeable `wither` function from all modules which admit a `Witherable` instance (@gcanti)
- export a pipeable `wilt` function from all modules which admit a `Witherable` instance (@gcanti)
# 2.6.4
- **Bug Fix**
- `ReadonlyMap`
- `traverseWithIndex` should sort the keys (@gcanti)
- `ReadonlyRecord`
- `traverseWithIndex` should sort the keys (@gcanti)
# 2.6.3
- **Polish**
- change `ReadonlyNonEmptyArray` definition to get better type inference (@gcanti)
- move `pipe` to `function` module (@gcanti)
- export `sequence` from all modules which admit a `Traversable` instance (@gcanti)
- export a pipeable `traverse` function from all modules which admit a `Traversable` instance (@gcanti)
- export a pipeable `traverseWithIndex` function from all modules which admit a `TraversableWithIndex` instance (@gcanti)
- remove monad transformers imports from all modules (@gcanti)
# 2.6.2
The goal of this release is to make `fp-ts` more "tree shaking" friendly.
- **Polish**
- add `/*@__PURE__*/` comments to pipeables (@gcanti)
- add `/*@__PURE__*/` comments to transformers (@gcanti)
- remove `pipeable.ts` module imports (@gcanti)
# 2.6.1
- **New Feature**
- add W variants, closes #904 (@gcanti)
- `Const`
- add missing instances, #1201 (@gcanti)
- `Date`
- add `eqDate`, `eqMonth`, `eqYear` (@gcanti)
- `Either`
- add `getOrElseW` (@gcanti)
- add `chainW` (@gcanti)
- `Eq`
- add `getMonoid` (@gcanti)
- `IOEither`
- add `getOrElseW` (@gcanti)
- add `chainW` (@gcanti)
- add `chainEitherKW` (@giogonzo)
- `Option`
- add `getOrElseW` (@gcanti)
- `Reader`
- add `chainW` (@gcanti)
- `ReaderEither`
- add `getOrElseW` (@gcanti)
- add `chainW` (@gcanti)
- add `chainEitherKW` (@giogonzo)
- `ReaderTaskEither`
- add `getOrElseW` (@gcanti)
- add `chainW` (@gcanti)
- add `chainEitherKW` (@giogonzo)
- add `chainTaskEitherKW` (@giogonzo)
- add `chainIOEitherKW` (@giogonzo)
- `StateReaderTaskEither`
- add `chainW` (@gcanti)
- add `chainEitherKW` (@giogonzo)
- add `chainTaskEitherKW` (@giogonzo)
- add `chainReaderTaskEitherKW` (@giogonzo)
- add `chainIOEitherKW` (@giogonzo)
- `TaskEither`
- add `getOrElseW` (@gcanti)
- add `chainW` (@gcanti)
- add `chainEitherKW` (@giogonzo)
- add `chainIOEitherKW` (@giogonzo)
- `Tree`
- add `fold` function (@gcanti)
# 2.5.4
- **Polish**
- `StateT`
- add missing `StateM2C` and `StateM3C` (@qlonik)
# 2.5.3
- **Polish**
- `Either`
- add missing instances to `getValidation` (@gcanti)
- `IOEither`
- relax `Bifunctor2C` to `Bifunctor2` in `getIOValidation` (@gcanti)
- `ReaderEither`
- relax `Bifunctor3C` to `Bifunctor3` in `getReaderValidation` (@gcanti)
- `ReaderTaskEither`
- relax `Bifunctor3C` to `Bifunctor3` in `getReaderTaskValidation` (@gcanti)
- `TaskEither`
- relax `Bifunctor2C` to `Bifunctor2` in `getTaskValidation` (@gcanti)
# 2.5.1
- **New Feature**
- `Eq`
- add `eqStrict`, closes #965 (@gcanti)
- `NonEmptyArray`
- add `fold` (@vicrac)
- add `zip`, `zipWith` and `unzip`, closes #1109 (@gcanti)
- `Semigroup`
- add `getIntercalateSemigroup` (@gcanti)
- `Set`
- add `toggle` (@ryota-ka)
- `TaskEither`
- add `tryCatchK` (@DenisFrezzato)
- `These`
- add missing `MonadThrow` instance (@gcanti)
- `ReaderTaskEither`
- add missing `leftReaderTask`, `rightReaderTask` functions (@gcanti)
- `StateReaderTaskEither`
- add missing `Bifunctor`, `Alt` instances (@gcanti)
- **Experimental**
- add `ReadonlyArray` module (@gcanti)
- add `ReadonlyNonEmptyArray` module (@gcanti)
- add `ReadonlySet` module (@gcanti)
- add `ReadonlyMap` module (@gcanti)
- add `ReadonlyRecord` module (@gcanti)
- add `ReadonlyTuple` module (@gcanti)
# 2.4.4
- **Polish**
- add missing `MonadIO4` (@mlegenhausen)
- add missing `MonadTask4` (@mlegenhausen)
- `StateReaderTaskEither`
- add missing `MonadTask4` instance (@mlegenhausen)
- add missing `filterOrElse`, `fromPredicate` combinators (@mlegenhausen)
# 2.4.3
- **Bug Fix**
- don't set `target: es6` in `tsconfig.build-es6.json`, fix #1110 (@gcanti)
# 2.4.2
- **Bug Fix**
- fix `Invariant` definition (@gcanti)
# 2.4.1
- **Polish**
- `NonEmptyArray`
- add overloading to `group` managing non empty arrays, closes #831 (@gcanti)
- `foldMap` and `foldMapWithIndex` now require a `Semigroup` instead of a `Monoid` (@gcanti)
# 2.4.0
- **New Feature**
- add `WriterT` module, closes #1050 (@gcanti)
- add `TheseT` module (@gcanti)
- add `TaskThese` module (@gcanti)
- `function`
- add `tupled`, `untupled` functions, closes #1062 (@gcanti)
- `IOEither`
- add `fromEitherK`, `chainEitherK` (@gcanti)
- `ReaderEither`
- add `fromEitherK`, `chainEitherK` (@gcanti)
- `ReaderTask`
- add `run` (@gcanti)
- add `fromIOK`, `chainIOK`, `fromTaskK`, `chainTaskK` (@gcanti)
- `ReaderTaskEither`
- add `fromEitherK`, `chainEitherK`, `fromIOEitherK`, `chainIOEitherK`, `fromTaskEitherK`, `chainTaskEitherK` (@gcanti)
- `These`
- add `swap` (@gcanti)
- `Ord`
- add `getMonoid` (@vicrac)
- `Ordering`
- add `monoidOrdering` (@gcanti)
- `StateReaderTaskEither`
- add `fromEitherK`, `chainEitherK`, `fromIOEitherK`, `chainIOEitherK`, `fromTaskEitherK`, `chainTaskEitherK`, `fromReaderTaskEitherK`, `chainReaderTaskEitherK` (@gcanti)
- `Task`
- add `fromIOK`, `chainIOK` (@gcanti)
- `TaskEither`
- add `fromEitherK`, `chainEitherK`, `fromIOEitherK`, `chainIOEitherK` (@gcanti)
- **Deprecation**
- `Ord`
- deprecate `getSemigroup` in favor of `getMonoid` (@gcanti)
- `Ordering`
- deprecate `semigroupOrdering` in favor of `monoidOrdering` (@gcanti)
- **Internal**
- use native `Promise.race` in `Task.getRaceMonoid` (@gcanti)
# 2.3.1
- **Bug Fix**
- `Array.ts`
- fix `sortBy` failing on empty list of ords, #1046 (@vicrac)
# 2.3.0
- **New Feature**
- add `ReaderTask` module (@sledorze)
- `ReaderTaskEither`
- add `getReaderTaskValidation` (@sledorze)
- `ReaderEither`
- add `getReaderValidation` (@gcanti)
- `TaskEither`
- improve `getTaskValidation` (@gcanti)
- `IOEither`
- improve `getIOValidation` (@gcanti)
# 2.2.0
- **New Feature**
- add `boolean` module, closes #930 (@giogonzo)
- add `ChainRec` instance to `IO` (@gcanti)
- `NonEmptyArray`
- add `init` (@steida)
- add `Alt` instance (@gcanti)
- **Internal**
- add new 3C variants and related overloads (@sledorze)
# 2.1.2
- **Bug Fix**
- `fromNullable` now uses `NonNullable` in its return type, fixes #1004 (@gcanti)
# 2.1.1
- **Bug Fix**
- add `sequenceT` and `sequenceS` overload signatures for `Kind4`, fixes #969 (@pfgray)
# 2.1.0
- **New Feature**
- add constrained `Filterable` instance to `IOEither`, `TaskEither`, #959 (@giogonzo)
# 2.0.5
- **Bug Fix**
- fix `PipeableApply2C` definition (@gcanti)
# 2.0.4
- **Polish**
- `ReaderTaskEither`
- add missing `bracket` function (@mlegenhausen)
# 2.0.3
- **Bug Fix**
- fix `sequenceT`, `sequenceS` implementations, closes #914 (@gcanti)
# 2.0.2
- **Bug Fix**
- add `reduce` to `FoldableComposition2C1` (@anilanar)
# 2.0.1
- **Bug Fix**
- fix `PipeableBifunctor` definition (@gcanti)
- fix `chunksOf` implementation, #897 (@gcanti)
# 2.0.0
- **Breaking Change**
- remove deprecated APIs (@gcanti)
- remove classes (@gcanti)
- remove all phantom fields (@gcanti)