@@ -7,13 +7,11 @@ module Rel8.Query.These
7 , keepThisTable, loseThisTable
7 , keepThisTable, loseThisTable
8 , keepThatTable, loseThatTable
8 , keepThatTable, loseThatTable
9 , keepThoseTable, loseThoseTable
9 , keepThoseTable, loseThoseTable
11 , bitraverseTheseTable
10 , bitraverseTheseTable
16−import Data.Functor ( (<&>) )
17import Prelude
15import Prelude
@@ -57,10 +55,12 @@ alignBy condition as bs =
57 on = toColumn . toPrimExpr . uncurry condition
55 on = toColumn . toPrimExpr . uncurry condition
58+-- | Filter 'TheseTable's, keeping only 'thisTable's and 'thoseTable's.
60keepHereTable :: TheseTable a b -> Query (a, MaybeTable b)
59keepHereTable :: TheseTable a b -> Query (a, MaybeTable b)
61keepHereTable = loseThatTable
60keepHereTable = loseThatTable
63+-- | Filter 'TheseTable's, keeping on
64loseHereTable :: TheseTable a b -> Query b
64loseHereTable :: TheseTable a b -> Query b
65loseHereTable = keepThatTable
65loseHereTable = keepThatTable
@@ -112,13 +112,6 @@ loseThoseTable t@(TheseTable (MaybeTable _ a) (MaybeTable _ b)) = do
112 result = (mempty `asTypeOf` result) {expr = tag}
112 result = (mempty `asTypeOf` result) {expr = tag}
115−bindTheseTable :: (Table Expr a, Semigroup a, Functor m)
116− => (i -> m (TheseTable a b)) -> TheseTable a i -> m (TheseTable a b)
117−bindTheseTable query (TheseTable here (MaybeTable input i)) =
118− query i <&> \(TheseTable here' (MaybeTable output b)) ->
119− TheseTable (here <> here') (MaybeTable (input <> output) b)
122bitraverseTheseTable :: ()
115bitraverseTheseTable :: ()
123 => (a -> Query c)
116 => (a -> Query c)
124 -> (b -> Query d)
117 -> (b -> Query d)