| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Rel8.Internal.Query.Either
Synopsis
- keepLeftTable :: EitherTable Expr a b -> Query a
- keepRightTable :: EitherTable Expr a b -> Query b
- bitraverseEitherTable :: (a -> Query c) -> (b -> Query d) -> EitherTable Expr a b -> Query (EitherTable Expr c d)
Documentation
keepLeftTable :: EitherTable Expr a b -> Query a Source #
Filter EitherTables, keeping only leftTables.
keepRightTable :: EitherTable Expr a b -> Query b Source #
Filter EitherTables, keeping only rightTables.
bitraverseEitherTable :: (a -> Query c) -> (b -> Query d) -> EitherTable Expr a b -> Query (EitherTable Expr c d) Source #
bitraverseEitherTable f g x will pass all leftTables through f and
all rightTables through g. The results are then lifted back into
leftTable and rightTable, respectively. This is similar to bitraverse
for Either.
For example,
>>>:{select do x <- values (map lit [ Left True, Right (42 :: Int32) ]) bitraverseEitherTable (\y -> values [y, not_ y]) (\y -> pure (y * 100)) x :} [ Left True , Left False , Right 4200 ]