export type Functor = { map(fn: (x: A) => B): Functor; [k: PropertyKey]: any; };