@@ -7,13 +7,11 @@ module Rel8.Query.These
77 , keepThisTable, loseThisTable
88 , keepThatTable, loseThatTable
99 , keepThoseTable, loseThoseTable
10− , bindTheseTable
1110 , bitraverseTheseTable
1211 )
1312where
1413
1514-- base
16−import Data.Functor ( (<&>) )
1715import Prelude
1816
1917-- opaleye
@@ -57,10 +55,12 @@ alignBy condition as bs =
5755 on = toColumn . toPrimExpr . uncurry condition
5856
5957
58+-- | Filter 'TheseTable's, keeping only 'thisTable's and 'thoseTable's.
6059keepHereTable :: TheseTable a b -> Query (a, MaybeTable b)
6160keepHereTable = loseThatTable
6261
6362
63+-- | Filter 'TheseTable's, keeping on
6464loseHereTable :: TheseTable a b -> Query b
6565loseHereTable = keepThatTable
6666
@@ -112,13 +112,6 @@ loseThoseTable t@(TheseTable (MaybeTable _ a) (MaybeTable _ b)) = do
112112 result = (mempty `asTypeOf` result) {expr = tag}
113113
114114
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)
120−
121−
122115bitraverseTheseTable :: ()
123116 => (a -> Query c)
124117 -> (b -> Query d)