export interface Functor { map(f: (a: T) => R): Functor; }