1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
export interface Effect<T = unknown> { output: T } export interface Kind1<Inp = unknown, Out = unknown> { input: Inp return: Out } export interface Bind<_Eff extends Effect, _Fn extends Kind1> extends Effect {} export interface Seq<_Effs extends Effect[]> extends Effect {} export interface Do<_Effs extends Effect[]> extends Effect {}