TypeScript

by dimitrs_papadimitriou

HTML

<div id="app"></div>

CSS

body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#app {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  transition: all 0.2s;
  text-align: center;
}

TypeScript

var Id = <T>(x: T) => ({
    cata: (alg: (a: T) => void) => alg(x),
    map: <U>(f: (y: T) => U) => Id<U>(f(x))
})

var t = Id<number>(2).map(x => x + 3);