mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-17 04:24:35 +03:00
30 lines
723 B
Haskell
30 lines
723 B
Haskell
|
{-# OPTIONS_GHC -fno-warn-orphans #-}
|
||
|
{-# LANGUAGE PolyKinds #-}
|
||
|
|
||
|
module Data.GADT.Compare.Extended
|
||
|
( module Data.GADT.Compare
|
||
|
, strengthenOrdering
|
||
|
, extendGOrdering
|
||
|
) where
|
||
|
|
||
|
import Prelude
|
||
|
|
||
|
import Data.GADT.Compare
|
||
|
import Type.Reflection
|
||
|
|
||
|
instance GEq ((:~~:) a) where
|
||
|
geq HRefl HRefl = Just Refl
|
||
|
instance GCompare ((:~~:) a) where
|
||
|
gcompare HRefl HRefl = GEQ
|
||
|
|
||
|
strengthenOrdering :: Ordering -> GOrdering a a
|
||
|
strengthenOrdering LT = GLT
|
||
|
strengthenOrdering EQ = GEQ
|
||
|
strengthenOrdering GT = GGT
|
||
|
|
||
|
infixr 6 `extendGOrdering`
|
||
|
extendGOrdering :: GOrdering a b -> (a ~ b => GOrdering c d) -> GOrdering c d
|
||
|
extendGOrdering GLT _ = GLT
|
||
|
extendGOrdering GEQ x = x
|
||
|
extendGOrdering GGT _ = GGT
|