0.2.0 • Published 5 years ago

contravariant v0.2.0

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

contravariant

npm Build Status

Contravariant functors in JavaScript with Flow.

Mainly inspired by haskell contravariant.

See src/index.js and test/index.test.js.

Installation

$ npm install contravariant

API

interface IContravariant<-A>

  • contramap<B>(fn: B => A): IContravariant<B>

class Predicate<-A>

  • constructor(f: A => boolean)
  • getPredicate(): A => boolean
  • contramap<B>(fn: B => A): Predicate<B>

class Comparison<-A>

  • constructor(f: (A, A) => number)
  • getComparison(): (A, A) => number
  • contramap<B>(fn: B => A): Comparison<B>

function defaultComparison(): Comparison<number>


class Equivalence<-A>

  • constructor(f: (A, A) => boolean)
  • getEquivalence(): (A, A) => boolean
  • contramap<B>(fn: B => A): Equivalence<B>

function defaultEquivalence<A>(): Equivalence<A>


class Op<+A, -B>

  • constructor(f: B => A)
  • getOp(): B => A
  • contramap<BB>(fn: BB => B): Op<A, BB>

Profunctors

interface IProfunctor<-B, +C>

  • promap<A, D>(fn1: A => B, fn2: C => D): IProfunctor<A, D>

class Arrow<-B, +C>

  • constructor(f: B => C)
  • getArrow(): B => C
  • promap<A, D>(fn1: A => B, fn2: C => D): Arrow<A, D>
  • lmap<A>(fn1: A => B): Arrow<A, C>
  • rmap<D>(fn2: C => D): Arrow<B, D>

See also