Inspired by
To install the stable version:
npm install --save fp-ts
The stable version is tested against TypeScript 2.7.x, but should run with TypeScript 2.2.2+ too
The idea (faking higher kinded types in TypeScript) is based on
- Lightweight higher-kinded polymorphism
- elm-brands
- Higher kinded types in TypeScript, static and fantasy land
- flow-static-land
- io-ts - TypeScript compatible runtime type system for IO validation
- monocle-ts - Functional optics: a (partial) porting of scala monocle to TypeScript
- newtype-ts - Implementation of newtypes in TypeScript
- logging-ts - Composable loggers for TypeScript
- fp-ts-routing - A type-safe bidirectional routing library for TypeScript
- parser-ts - String parser combinators for TypeScript
- fp-ts-rxjs - fp-ts bindings for RxJS
- fp-ts-fluture - fp-ts bindings for Fluture
- API
- How
HKT
,URI2HKT
,URIS
andType
work - Examples
- Free monad
- MTL-style
- OptionT monad transformer
- EitherT monad transformer
- StateT monad transformer
- ReaderT monad transformer
- Applicative composition
- Type safe finite state machines with
IxIO
- Moore machine
- Debugging with
Trace
- fantas-eel-and-specification - Code for the Fantas, Eel, and Specification blog series on functional programming by Tom Harding
The MIT License (MIT)