Skip to content

Latest commit

 

History

History
3245 lines (3070 loc) · 102 KB

CHANGELOG.md

File metadata and controls

3245 lines (3070 loc) · 102 KB

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

Pipeable helpers

The pipeable module now exports a series of pipe-able helpers that are useful when you build a typeclass instance "on the fly".

Example

Here's a simple pipe-line which validates a Person struct

import * as E from 'fp-ts/Either'
import { pipe } from 'fp-ts/function'

const parseString = (u: unknown): E.Either<string, string> =>
  typeof u === 'string' ? E.right(u) : E.left('not a string')

const parseNumber = (u: unknown): E.Either<string, number> =>
  typeof u === 'number' ? E.right(u) : E.left('not a number')

interface Person {
  readonly name: string
  readonly age: number
}

const person = (name: string) => (age: number): Person => ({ name, age })

const parsePerson = (input: Record<string, unknown>): E.Either<string, Person> =>
  pipe(E.of(person), E.ap(parseString(input.name)), E.ap(parseNumber(input.age)))

console.log(parsePerson({})) // => left('not a string')

As you can see the default ap exported by the Either module return only the first validation error.

You probably already know that if you want to get all validation errors you must create an Applicative instance on the fly

import * as S from 'fp-ts/Semigroup'
import * as string from 'fp-ts/string'

const Applicative = E.getApplicativeValidation(pipe(string.Semigroup, S.intercalate(', ')))

The issue here is that Applicative.ap is not pipe-able and can't be used inside a pipe-line

const parsePersonAll = (input: Record<string, unknown>): E.Either<string, Person> =>
  pipe(
    E.of(person),
    Applicative.ap(parseString(input.name)), // <= error
    Applicative.ap(parseNumber(input.age)) // <= error
  )

That's when the new pipe-able helpers come to handy

import * as P from 'fp-ts/pipeable'

//    v--- this is `pipe`-able
const ap = P.ap(Applicative)

const parsePersonAll = (input: Record<string, unknown>): E.Either<string, Person> =>
  pipe(
    E.of(person),
    ap(parseString(input.name)), // <= ok
    ap(parseNumber(input.age)) // <= ok
  )

console.log(parsePersonAll({})) // => left('not a string, not a number')

Changelog:

  • New Feature
    • pipeable
      • add pipeable helpers (@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
  • Polish
    • Writer
      • getChain requires a Semigroup instead of a Monoid (@gcanti)

2.12.3

  • Polish
    • Apply
      • add ap overloadings, #1721 (@waynevanson)
    • ReadonlyRecord
      • fix fromEntries return type, closes #1745 (@gcanti)
    • TaskEither
      • add chainTaskOptionKW, #1744 (@AmirabbasJ)
    • 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

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 traversesequence 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 traversesequence 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)