com.gu.openplatform.contentapi.util
fail
is not really part of the monad contract and can not be implemented for
all monads without throwing an exception (as in the case of the Identity monad).
fail
is not really part of the monad contract and can not be implemented for
all monads without throwing an exception (as in the case of the Identity monad).
We replicate this historical piece of pragmatism (from Haskell) here, because
throwing the exception is the intended behaviour for the blocking client.
Monad typeclass with failure