@@ -13,6 +13,25 @@ import Rel8.Query ( Query )
13import Rel8.Query.Filter ( where_ )
13import Rel8.Query.Filter ( where_ )
16+-- | Filter a 'Query' that might return @null@ to a 'Query' without any
19+-- Corresponds to 'Data.Maybe.catMaybes'.
21+-- >>> select c $ pure (nullExpr :: Expr (Maybe Bool))
24+-- >>> select c $ catNullable (nullExpr :: Expr (Maybe Bool))
27+-- >>> select c $ catNullable (lit (Just True))
30+-- Notice how in the last example a @Bool@ is returned (rather than @Maybe
33+-- >>> :t catNullable (lit (Just True))
34+-- catMaybe (lit (Just True)) :: Query (Expr Bool)
16catNullable :: Expr (Maybe a) -> Query (Expr a)
35catNullable :: Expr (Maybe a) -> Query (Expr a)
17catNullable a = do
36catNullable a = do
18 where_ $ isNonNull a
37 where_ $ isNonNull a