{@category delay}
Effect<E, L, R> timeout(Duration duration) => race(Effect<E, L, R>.failCause(const Interrupted()).delay(duration));