- Add Non-sequential-Applicative operators and computation expressions
- Add proper SeqT implementation
- Matrix and Vector types implement IEnumerable's and IReadOnly's interfaces
- Add limited applicative support to dictionaries
- Add (forward) tee operator (|-)
- Add "mapsquared" pipe operators (|>>>) and (<<<|)
- Add some functions, interfaces and optimizations to DList<'T>
- Add findLastSliceIndex and tryFindLastSliceIndex
- Add Result.Sequence
- Add Result.iterError
- Add Validation.ofOptionWith
- Add List.chunkBy
- Rename Sequence overloads to Sequential
- Add Async.Await Async.AsTask and more overloads to Async.Sequential
- Add empty and isEmpty to IReadOnlyCollection and Exception module
- Fix bug in lift3 for List and Array
- Type inference for generic traversals slightly improved
- Support for Fable 4 (some functions had to be removed from Fable in order to it)
- More IList and IReadOnlyList functions
- Bug fixes in parse, tryParse, seq's TryFinally and (=>>) for ValueTask
- Add Free.hoist
- Add distinct for NonEmptySeq and NonEmptyList
- Add ValueOption.ofOption and Task.result for Task and ValueTask
- Additional Alternatives available (functions, error monads)
- More IReadOnlyDictionary functions
- Bug fixes in Map as FoldIndexable and missing <*> for IDictionary and IReadOnlyDictionary
- Deprecate IReadOnlyDictionary.map
- Guid to/from bytes conversion
- Fix missing zero overload for voption
- Add (>>=) and (>=>) to ReaderT
- Add ValueOption.toOption
- Deprecate (<**>)
- Applicative Computation Expressions
- Support for ValueOption, ValueTask and ValueTuple
- Possibility to use explicit type parameters (plus, Seq.sum, guard, ofBytes, ofBytesWithOptions, ofBytesBE, parse, tryParse)
- Use InlineIfLambda attribute in CEs
- Small fixes (add lift3 for tuples, fix join for ref tuple and Free.map3)
- Small improvements in type inference
- Use F# Core 6.0.6
- Speed up List and Array extensions using Collectors
- Use FSharp.Core implementations for old functions that were adopted there
- Add some missing Option, Result zip functions
- Add explicit type parameters
- Use InlineIfLambda attribute in CEs
- Some missing Option, Result zip functions
- Add NonEmptyList.sequence
- Improve null handling for Array extensions
- Fix: Fable regressions
- Add additional applicative operators directly to types
- Fix: upcoming problem with new .NET6 overloads
- Add Choice method and reduce function for NonEmptySeq
- Bugfix: Seq.drop returns an empty sequence instead of intended output
- Bump Fable to 3.2.6
- Fable compatibility for un/curry functions and CE expressions
- Add missing Lift2, Lift3, lift3 and use MergeSources3
- Add bindError function
- Bug fixes: tryParseArray and Result.map3 signature
- Update to compile with Fable 3
- Allow specialized builders for generic CEs
- Add new types: NonEmptySeq, NonEmptySet, NonEmptyMap and MultiMap
- Integrate Task in strict CEs
- Add Mapi Support in NonEmpty List
- Add Cont.eval / ContT.eval
- Builder for NonEmptySeq
- Add choose function to Map and Dictionaries modules (in Extensions)
- Add choosei to several modules
- Add zipShortest function and use that to make generic Zip safe for collections
- Add map2Shortest, a safe map2 variant to several modules
- Add missing map3/lift3 extensions
- Add TryLast to Foldable and introduce operator tryLast
- Add tryHead and tryLast to String module (in the Extensions namespace)
- Add yield! to monad.plus
- Add SequenceBiApply and partition to Validation
- Add indexer optic for List and Array
- Rename Parse active pattern to Parsed
- Include internal error in Result.get
- Add support for %o %x %X and %B to scan functions
- Bugfix: Evaluate traverse left to right
- Use list instead of array for the generic implementation of sequence
- Better hiding of internals in parsing
- Fix short-circuiting Traverse
- Fix signature of Free.fold
- Update Task extensions so they can handle short-circuit, exceptions and cancellations
- Fix String.drop function
- Use list internally instead of array for the generic implementation of sequence
- Make
<*>
for functions evaluate side-effects left-to-right - Remove BindReturn from monad computation expression in order to avoid type inference issues in F#5
- Fix:
TryWith
for State and Reader,Filter
,DistinctBy
,SortBy
andSortByAscending
for user defined types. - Compile-time safety for try-blocks and while-loops in generic computation expressions.
- Reduce allocations in NonEmptyList builder implementation.
- Add support for clean signatures to all Indexables.
- Improved, fixed and additional documentation in the extensions namespace.
- Add map2/lift2 for all monad transformers
- Add Tuple2 and Tuple3 extensions
- Add non-generic <!> operator for Validation, mainly intended to be used for applicative validation in Fable
- Fix: issue with generic intercalate function
- Fix: traverse for seq of asyncs
- Fix: issue with equality for DLists in Fable
- Add Nullable module and map and bind overloads for Nullable
- Add <= and >= Applicative Math operators
- Fix: issue with Fable consumption of the library
- Bitraversable abstraction
- Fix: compatibility issue with 1.0 in a separate branch (from which it will be released)
- Generic lift2 function made extensible and usable from F#5 preview's applicative CEs
- Polymorphic itemX and mapItemX function working in Fable
- More Traverse/Sequence overloads for extensions
- Add Dictionary/Lazy extensions and some additionals for ResizeArray
- Convert NonEmptyList builder empty list error in a compile-time error
- ZipList as Alternative
- ZipList without Equality
- Conversion functions for NonEmptyList, replacing Unchecked module from previous RC
- Fix: zero and empty for DList
- Fix: defaults for zero function
- Fix: ofSeq/ofList for IEnumerables
- Rename LeftZero for Traversable/Alternative, fixed some issues and add some instances
- Retarget Fable compilation to Extensions, some types from Data and abstractions Comonad, Invariant and Bind
- Lens new functions: choosed and non
- Fix: _item (from Lens)
- Generic choice function made extensible and already working with semigroups
- More operations on NonEmptyList and nel builder
- Added missing operations for Computation Expressions to some types
- Fix: signature for curry, uncurry and State.modify
- Fix: traverse operation when derived from sequence operation
- Short-circuit mechanism for Traversable and Alternatives
- More extension functions: Result.bindError, Choice.bindChoice2Of2 and Array.apply
- Fix and rename optional function to opt
- Rename liftA2 to lift2
- More ZipFunctor instances and better Unzip internals
- Some tweaks to Free (internals)
- Add functions gets and modify for stateful computations
- Better type inference for lift
- Some functions deprecated in Validation and Extensions
- Fix: swap type parameteres of Bifunctor and Bifoldable for Choice / Result
- Default Monoid for bool (xor)
- Some minor bug fixes
- Better signatures and xml descriptions
- More Fable support
- Free Monad
- Functor's Coproduct
- Bifoldable abstraction: http://fsprojects.github.io/FSharpPlus/abstraction-bifoldable.html
- deprecating
Validation.biFoldBack
- Some Choice and Result functions
- tap function
- Rename IReadOnlyList.add to trySetItem
- Improved lift for Monad Transformers
- Initial Fable support for Extensions
- Add generic bind, try/findIndex and try/findSliceIndex functions
- Traverse and TraverseIndexed for Map<,>
- Lens: fix foldOf and add maximumOf/minimumOf
- Add intersect functions for Map/Dictionaries
- Add polyvariadic memoizationN, curryN/uncurryN functions
- Add polyvariadic parsing functions (scanf family)
- Add Dict.containsKey, IReadOnlyDictionary.containsKey
- More lens for Map and Set
- Extend String and Task modules
- Task as ZipFunctor and Applicative
- Improve performace for union on dictionaries and maps
- Add unary negation operator for applicative maths
- Fix: add missing CE members to Monad Transformers
- Fix: infinite seq of asyncs can now be traversed
- Fix: generic sum function works with any monoid
- Fix 'use' for strict builders
- Add Invariant Abstraction
- Some convenient conversion functions between Option and Result
- OfSeq for IReadOnlyDictionary
- OfList for all same instances as OfSeq
- Add some ReadOnly Collections related functions
- Fix some type inference problems
- More Xml docs and type annotations
- Lens with less constraints (speed up compile time)
- More generic Foldable functions
- More extensions and abstractions with IReadOnlyDictionary
- Option as ZipFunctor
- More Async extensions
- More clean signatures supported
- Removed tuple size limitations
- Add generic functions 'maximum' and 'minimum' for Foldable
- Fix: generic 'scan' signature
- Fix: bug in '<|>' for Choice
- Optimized Foldable/Collection generic functions by adding specific overloads
- Async as ZipFunctor
- More Async extensions
- Fix culture neutrality of TryParse functions
- More integration with ReadOnly Collections
- More extensions for Map, IDictionary and ReadOnly collections
- Map and Dictionary as ZipFunctor
- Result and Choice as Semigroup and Alt
- Exceptions and AggregateExceptions as Semigroup
- Public 1.0.0 release that includes a better architected API and numerous bug fixes
- Re-introduce Choice based monad transformers with ChoiceT
- Generic split function is now bigeneric
- Bug fix in OptionT execution
- A hoist function was added to some Monad Transformers
- Bug Fixes
- Accumulative Validations
- DList<'T> implementation changed
- C# Extension Methods removed
- Require operators instead of named methods:
- (>>=) instead of Bind
- (=>>) instead of Extend
- (<|>) instead of Append
- Custom operations:
- sortBy renamed to orderBy
- first and nth removed
- top operator added
- Unify Second with Map
- Defaults improved
- Identity<'T> is now in FSharpPlus.Data
- More flexibility in Computation Expressions
- Dictionary extensions
- Bug fixes
- Wrappers compiled as structs
- New tryItem operation for Indexable types
- Better default methods
- Bug fixes
- Rename ErrorT to ResultT
- Removed Haskell Compatibility
- IEnumerator functions
- Applicative Math: new syntax, more operators
- Function sequenceA renamed to sequence
- More types: DList, Multiplication monoid
- Changes in either function (args swapped)
- Namespaces renamed
- Lens functions renamed
- Removed function toString
- Some Delayed Monad Transformers
- Bug fixes
- New execution model for Computation Expressions
- Use F# new Result Type to model failures
- Functions minValue and maxValue are now generic constants
- Many String and other extensions
- Targeting Netstandard 2.0
- (0, +) as default monoid for numerics
- Rename:
- Empty, Append and Concat to MEmpty, MAppend and MConcat
- MZero and MPlus to Empty and Append.
- mempty and mappend to zero and plus
- mconcat and mfold to Seq.sum and sum
- Generic constants (empty, zero, app, ...)
- Compose for applicative functors
- Unify RMap with Map and LMap with Contramap
- Functions create, singleton and traverse (Traversable) for NonEmptyList
- Reader<'R, 'T> and Writer<'Monad<'T * 'Monoid>> as Comonads
- IDictionary<'Key,'Value> as Functor and Monoid
- Standard signature for Join
- Enhancements in Traversable, including bug fixed and more infinite seqs cases
- Adapt code to be usable (no regressions) and able to be compiled from F# 4.1
- Extensive documentation, including tutorials and a classepedia (abstractions) diagram (WIP)
- Builders support MonadPlus and FX computations
- Bin path for sample files corrected
- Added Delay implementation for Cont
- Added Invokables for builders: TryWith, TryFinally and Using
- Fix overloads for Task
- Improve functor's map resolution in presence of interfaces
- Generalize Unzip to any functor
- Initial release using ProjectScaffold