{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE ExistentialQuantification #-}
module Language.LSP.Types.Cancellation where
import Data.Aeson.TH
import Language.LSP.Types.LspId
import Language.LSP.Types.Utils
data CancelParams = forall m.
CancelParams
{
_id :: LspId m
}
deriving instance Read CancelParams
deriving instance Show CancelParams
instance Eq CancelParams where
(CancelParams a) == CancelParams b =
case (a,b) of
(IdInt x, IdInt y) -> x == y
(IdString x, IdString y) -> x == y
_ -> False
deriveJSON lspOptions ''CancelParams