hunk.code_window:              soPlanCacheOptions
                soResponseInternalErrorsConfig
                postPollHook
                _scSchemaCacheRef
                ekgStore
                soEnableRemoteSchemaPermissions
                soInferFunctionPermissions
                soConnectionOptions
                soWebsocketKeepAlive
  
hunk.labels: keep keep keep keep add keep keep keep keep
hunk.after_edit:              serverMetrics
  
hunk.file_path: server/src-lib/Hasura/App.hs
hunk.type: add
file: {-# 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
  