on da76712 help sign in
rel8/src/Rel8/Order.hs
30 lines 869 B history raw
1{-# language DerivingStrategies #-}
2{-# language GeneralizedNewtypeDeriving #-}
3{-# language StandaloneKindSignatures #-}
5module Rel8.Order
6 ( Order(..)
7 )
8where
10-- base
11import Data.Functor.Contravariant ( Contravariant )
12import Data.Kind ( Type )
13import Prelude
15-- contravariant
16import Data.Functor.Contravariant.Divisible ( Decidable, Divisible )
18-- opaleye
19import qualified Opaleye.Order as Opaleye
22-- | An ordering expression for @a@. Primitive orderings are defined with
23-- 'Rel8.asc' and 'Rel8.desc', and you can combine @Order@ via its various
24-- instances.
25--
26-- A common pattern is to use '<>' to combine multiple orderings in sequence,
27-- and 'Data.Functor.Contravariant.>$<' to select individual columns.
28type Order :: Type -> Type
29newtype Order a = Order (Opaleye.Order a)
30 deriving newtype (Contravariant, Divisible, Decidable, Semigroup, Monoid)