{-# LANGUAGE Arrows #-}
module Opaleye.Label (
label',
label
) where
import qualified Opaleye.Internal.PrimQuery as PQ
import qualified Opaleye.Internal.QueryArr as Q
import qualified Opaleye.Select as S
import Control.Arrow (returnA)
label' :: String -> S.Select ()
label' :: String -> Select ()
label' String
l = State Tag (() -> ((), PrimQueryArr)) -> Select ()
forall a b. State Tag (a -> (b, PrimQueryArr)) -> SelectArr a b
Q.selectArr State Tag (() -> ((), PrimQueryArr))
f where
f :: State Tag (() -> ((), PrimQueryArr))
f = (() -> ((), PrimQueryArr)) -> State Tag (() -> ((), PrimQueryArr))
forall a. a -> StateT Tag Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (\() -> ((), String -> PrimQueryArr
PQ.aLabel String
l))
{-# DEPRECATED label "Will be removed in version 0.11. Use 'label\'' instead." #-}
label :: String -> S.SelectArr a b -> S.SelectArr a b
label :: forall a b. String -> SelectArr a b -> SelectArr a b
label String
l SelectArr a b
s = proc a
a -> do
b
b <- SelectArr a b
s -< a
a
String -> Select ()
label' String
l -< ()
SelectArr b b
forall (a :: * -> * -> *) b. Arrow a => a b b
returnA -< b
b