declare const f: <R,E,A>(effect: Effect<R,E,A>) => any // accept any effect
declare const g: <R, T extends R>(tag: Context.Tag<T,any>) => <E,A>(effect: Effect<R,E,A>) => any // accept effects which have T in context only
// now I want to create a g' from g where Tag is already instantiated
const myTag = Context.Tag<'a', 'a'>()
const g' = g(myTag)
declare const effectWithoutA: Effect<'b', never, never>
g'(effetctWithoutA) // works but it's WRONG!
declare const f: <R,E,A>(effect: Effect<R,E,A>) => any // accept any effect
declare const g: <R, T extends R>(tag: Context.Tag<T,any>) => <E,A>(effect: Effect<R,E,A>) => any // accept effects which have T in context only
// now I want to create a g' from g where Tag is already instantiated
const myTag = Context.Tag<'a', 'a'>()
const g' = g(myTag)
declare const effectWithoutA: Effect<'b', never, never>
g'(effetctWithoutA) // works but it's WRONG!