@@ -13,6 +13,7 @@ module Rel8.Query.These
16+import Data.Functor ( (<&>) )
16import Prelude
17import Prelude
@@ -111,11 +112,11 @@ loseThoseTable t@(TheseTable (MaybeTable _ a) (MaybeTable _ b)) = do
111 result = (mempty `asTypeOf` result) {expr = tag}
112 result = (mempty `asTypeOf` result) {expr = tag}
114−bindTheseTable :: (Table Expr a, Semigroup a, Monad m)
115+bindTheseTable :: (Table Expr a, Semigroup a, Functor m)
115 => (i -> m (TheseTable a b)) -> TheseTable a i -> m (TheseTable a b)
116 => (i -> m (TheseTable a b)) -> TheseTable a i -> m (TheseTable a b)
116−bindTheseTable query (TheseTable here (MaybeTable input i)) = do
117+bindTheseTable query (TheseTable here (MaybeTable input i)) =
117− TheseTable here' (MaybeTable output b) <- query i
118+ query i <&> \(TheseTable here' (MaybeTable output b)) ->
118− pure $ TheseTable (here <> here') (MaybeTable (input <> output) b)
119+ TheseTable (here <> here') (MaybeTable (input <> output) b)
121bitraverseTheseTable :: ()
122bitraverseTheseTable :: ()