- Add support for negative start indices in
List.Splice
.
- Improve ability to compose type-level functions
- Add
$N
operator for uncurried type-level function application. - Add
Kind.Curry
andKind.Uncurry
to support argument lifting.
- Add
- Add various natural number operations:
- Add
NaturalNumber.ModuloBy
with swapped arguments. - Add
NaturalNumber.IsLessThan
.
- Add
- Add
Combinator.Collate
for theoretical / pedagogical purposes. - Add
NaturalNumberTheory.Factorial
. - Add
NaturalNumberTheory.FizzBuzz
andNaturalNumberTheory.FizzBuzzSequence
.
- Add
DigitList.FromString
for parsing digit lists from strings. - Add
Number.Compare
for type-level numeric comparison.
- Add various advanced
List
methods.- Add
Concat
,Repeat
,ShiftN
,PopN
,Slice
,Splice
,Flatten
- Add
FlattenN
,DigitList.ToNumber
- Add
- [Breaking] Renamed prior
List.Slice
utility toList.ShiftN
.
- Make
String.Join
more composable with other list types.
- Improve
NaturalNumber.Multiply
andCombinator.FixSequence
performance.
- Add
Kind.Reify
for reifying a higher-order type to a value-level type. - Add
Type.Infer
for inferring a narrow type in a parameter context.
- [Breaking] Complete overhaul of all modules, more consistent
$
usage.
- Add
NaturalNumber.Compare
for comparing natural numbers.
- Add various numeric comparison types.
- Add
DigitList.Compare
for comparing digit list magnitude. - Add
Digit.Compare
for comparing single-digit magnitude.
- Add
- Add various parser combinators.
- Add
Parser.Many1
for parsing one or more elements. - Add
Parser.Optional
for parsing an optional element.
- Add
- Introduce
Stress
module for common stress-testing types.
- Introduce various other
Parser
combinators.- Add
Parser.Run
for state management. - Add
Parser.Map
for mapping over the result of a parser. - Add
Parser.Letter
andParser.Letters
for parsing letters. - Add
Parser.ObjectSequence
for better result extraction.
- Add
- Add
Object.Emplace
andObject.Merge
methods. - Increase performance of various string and list utilities.
- Introduce
Parser
module for parser combinators.- Add
Parser.String
for parsing string literals. - Add
Parser.Choice
for parsing alternatives. - Add
Parser.Sequence
for parsing sequences.
- Add
- Add
List.Slice<N>
method, to remove the first N elements from a list. - Add
String.Slice
method.
- Fix division bug that led to rare incorrect results for
NaturalNumber.Divide
.
- Introduce
NaturalNumberTheory
module for abstract natural number theory.- Add
NaturalNumberTheory.Collatz
- Add
NaturalNumberTheory.CollatzSequence
for generating hailstorm numbers.
- Add
- Add
Combinator.FixSequence
for fixed-point iteration of a sequence. - Add
NaturalNumber.DivideBy
, for argument swapping ofNaturalNumber.Divide
.
- Fix
String.Join
bug that did not properly handle one-tuple elements.
- Add
List.Length
method. - Add
List.Times
method, which constructs the tuple from 0 to N - 1. - Add
NaturalNumber.Divide
andNaturalNumber.Modulo
methods. - Add
NaturalNumber.IsEven
andNaturalNumber.IsOdd
methods. - Add various digit-list level division methods.
- Add
NaturalNumber.Multiply
method. - [Breaking] Change return type of natural arithmetic to numbers instead of strings.
- Add
NaturalNumber.Increment
andNaturalNumber.Decrement
methods. - Add
NaturalNumber.Subtract
method.
- Add
List.Reduce
method.
- Add
Number
,NaturalNumber
,Digit
, andDigitList
modules. - Add
Type.IsNever
method. - Add
Union.Length
method.
- [Breaking] Switch default package export from '$' to entire module.
- [Breaking] Remove deprecated
Conditional.SubtypeOf
in favor ofConditional.Extends
. - [Breaking] Remove
Kind
namespace-class merging in favor ofKind.Kind
. - Add support for deep subpath imports.
- e.g.
import { StartsWith } from "hkt-toolbelt/string/starts-with"
- e.g.
- Add
String.ToUpper
andString.ToLower
methods. - Add
Object.MapKeys
andObject.MapValues
methods.
- Add
Conditional.If
hk-type for type-level control flow. - Add
String.IsString
hk-level predicate. - Add
Type
,Union
, andObject
core components.
- Fix a type resolution issue for
Conditional.Extends
hk-type. - Strengthen hk-level type check for
Combinator.ApplySelf
hk-type. - Optimize string and list utilities via tail-call optimization.
- Introduce
Conditional.Extends
utility type. - Deprecate alias
Conditional.SubtypeOf
in favor ofConditional.Extends
.
- Add
String.Tail
,String.Init
, andString.Reverse
hk-types.
- Optimize string splitting routine in
String.IsTemplate
using tail-call optimization. - Add
String.First
andString.Last
kinds.
- Publish updated npm readme.
- Add
String.Join
,String.Split
, andString.IsTemplate
kinds. - Add
List.IsVariadic
kind.
- Fix bug with
Test.Expect
in checking equality between twonever
types. - Publish improved docs on npm.
- Allow alternative subpath imports, e.g.
hkt-toolbelt/string
.
- Fix internal import paths and build process for package types.
- Add shorthand
$$
pipe-application operator. - Add
Boolean.Or
for||
HKT-level operator. - Add
Combinator.Self
andCombinator.ApplySelf
combinators. - Add
Kind.Pipe
left-to-right composition. - Add
List.First
,List.Some
,List.Reverse
tuple utilities. - Improve
Test.Expect
error messages to use ᛰ for strict type equality.
- Add
String.Append
andString.Prepend
types. - Improve
Test.Expect
behavior and error messages.
- Rename
Kind.Input
toKind.InputOf
andKind.Output
toKind.OutputOf
.
- Add HKT-level composability check for
Kind.Compose
.
- First experimental release.
- Introduce
Boolean
,Cast
,Conditional
,Function
,Kind
,List
,String
, andTest
core components.