const F = {};
const comp = fun(
f => g => x => f(g(x)),
"(b => c) => (a => b) => a => c");
F.map = comp;
F.Functor = Functor({map: F.map});
While F.Functor[ADT] yields the correct type Functor<(c =>)>, Functor.map[ANNO] yields (^a, b. (a => b) => (c => a) => (c => b)) although it should be (^a, b. (a => b) => (c => a) => c => b).
While
F.Functor[ADT]
yields the correct typeFunctor<(c =>)>
,Functor.map[ANNO]
yields(^a, b. (a => b) => (c => a) => (c => b))
although it should be(^a, b. (a => b) => (c => a) => c => b)
.