Deconstruct Resource into an acquire and release handlers. The release action must always be called with resource A returned from acquire, if the release step is never called, then the resource A will leak. The acquire and release steps are already made NonCancellable to guarantee correct invocation like Resource or bracketCase.
Combines two independent resource values with the provided map function, returning the resulting immutable Resource value. The finalizers run in order of left to right by using flatMap under the hood, but zip provides a nicer syntax for combining values that don't depend on each-other.