1{-# language TupleSections #-}
3module Rel8.Query.Opaleye
13import Control.Applicative ( liftA2 )
17import qualified Opaleye.Internal.QueryArr as Opaleye
18import qualified Opaleye.Internal.Tag as Opaleye
21import {-# SOURCE #-} Rel8.Query ( Query( Query ) )
24fromOpaleye :: Opaleye.Select a -> Query a
25fromOpaleye = Query . pure . fmap pure
28toOpaleye :: Query a -> Opaleye.Select a
29toOpaleye (Query a) = snd <$> a mempty
32mapOpaleye :: (Opaleye.Select a -> Opaleye.Select b) -> Query a -> Query b
33mapOpaleye f (Query a) = Query (fmap (mapping f) a)
37 => (Opaleye.Select a -> Opaleye.Select b -> Opaleye.Select c)
38 -> Query a -> Query b -> Query c
39zipOpaleyeWith f (Query a) (Query b) = Query $ liftA2 (zipping f) a b
42unsafePeekQuery :: Query a -> a
43unsafePeekQuery (Query q) = case q mempty of
44 f -> case Opaleye.runStateQueryArr f () Opaleye.start of
49 => (Opaleye.Select a -> Opaleye.Select b)
50 -> Opaleye.Select (m, a) -> Opaleye.Select (m, b)
51mapping f q = Opaleye.stateQueryArr $ \_ tag ->
53 ((m, _), _, _) = Opaleye.runStateQueryArr q () tag
54 q' = (m,) <$> f (snd <$> q)
56 Opaleye.runStateQueryArr q' () tag
60 => (Opaleye.Select a -> Opaleye.Select b -> Opaleye.Select c)
61 -> Opaleye.Select (m, a) -> Opaleye.Select (m, b) -> Opaleye.Select (m, c)
63 Opaleye.stateQueryArr $ \_ tag ->
65 ((m, _), _, _) = Opaleye.runStateQueryArr q () tag
66 ((m', _), _, _) = Opaleye.runStateQueryArr q' () tag
68 q'' = (m'',) <$> f (snd <$> q) (snd <$> q')
70 Opaleye.runStateQueryArr q'' () tag
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list