A string literal type used as the dependency's unique tag
A unique string identifier for this dependency
A function that, when called with a type parameter <T>(), returns
a Dependency<D, T> instance
dependency is a curried factory: the first call accepts the tag string,
and the second call (with a type parameter) produces a Dependency
instance. Use yield* inside gen to read the dependency's value,
and call Dependency.provide to supply it before execution.
If a dependency is not provided before the effect is run, the effect will
fail with Error("Missing dependency: <tag>").
Creates a typed dependency tag that represents a value your effects need at runtime.