module Z3.Common where
returnValueToMaybe :: Monad m => Bool -> m a -> m (Maybe a)
returnValueToMaybe :: forall (m :: * -> *) a. Monad m => Bool -> m a -> m (Maybe a)
returnValueToMaybe Bool
success m a
m = if Bool
success then do
a
val <- m a
m
Maybe a -> m (Maybe a)
forall a. a -> m a
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe a -> m (Maybe a)) -> Maybe a -> m (Maybe a)
forall a b. (a -> b) -> a -> b
$ a -> Maybe a
forall a. a -> Maybe a
Just a
val
else
Maybe a -> m (Maybe a)
forall a. a -> m a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe a
forall a. Maybe a
Nothing