1{-# language DerivingStrategies #-}
2{-# language GeneralizedNewtypeDeriving #-}
3{-# language StandaloneKindSignatures #-}
11import Data.Functor.Contravariant ( Contravariant )
12import Data.Kind ( Type )
16import Data.Functor.Contravariant.Divisible ( Decidable, Divisible )
19import qualified Opaleye.Internal.Order as Opaleye
22-- | An ordering expression for @a@. Primitive orderings are defined with 'asc'
23-- and 'desc', and you can combine @Order@ via its various instances.
25-- A common pattern is to use '<>' to combine multiple orderings in sequence,
26-- and '>$<' (from 'Contravariant') to select individual columns. For example,
27-- to sort a @Query@ on two columns, we could do:
29-- >>> import Data.Functor.Contravariant ((>$<))
31-- select c $ orderBy (mconcat [fst >$< asc, snd >$< desc]) $ do
32-- x <- values [ lit x | x <- [1..3 :: Int32 ] ]
33-- y <- values [ lit x | x <- [1..3 :: Int32 ] ]
36-- [(1,3),(1,2),(1,1),(2,3),(2,2),(2,1),(3,3),(3,2),(3,1)]
37type Order :: Type -> Type
38newtype Order a = Order (Opaleye.Order a)
39 deriving newtype (Contravariant, Divisible, Decidable, Semigroup, Monoid)
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