{-# LANGUAGE DataKinds #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -Wno-orphans -Wno-deprecations #-} -- {-# OPTIONS_GHC -ddump-splices -dsuppress-module-prefixes #-} -- | This module is a modified version of Generics.SOP.Instances. -- mostly the same. module Staged.GHC.Generics.Instances () where import Staged.GHC.Generics.TH import Control.Exception import Data.Char import Data.Complex import Data.Data import Data.Fixed import Data.Functor.Compose import qualified Data.Functor.Const import Data.Functor.Identity import Data.Functor.Product import Data.Functor.Sum import Data.List.NonEmpty import qualified Data.Monoid import Data.Ord import qualified Data.Semigroup import Data.Version import Data.Void import Foreign.C.Error import Foreign.C.Types import GHC.ByteOrder import GHC.Conc import GHC.ExecutionStack import GHC.Exts -- import GHC.Events -- platform-specific, omitted import GHC.Fingerprint import GHC.Float import qualified GHC.Generics import GHC.IO.Buffer import GHC.IO.Device import GHC.IO.Encoding import GHC.IO.Encoding.Failure import GHC.IO.Exception import GHC.IO.Handle import GHC.RTS.Flags import qualified GHC.Stack import GHC.StaticPtr import GHC.Stats import System.Console.GetOpt import System.IO import Text.Printf import Text.Read.Lex -- Types from the Prelude: -- there is manual instance for this -- deriveGeneric ''Bool deriveGeneric ''Ordering deriveGeneric ''Maybe deriveGeneric ''Either deriveGeneric ''() deriveGeneric ''(,) -- 2 deriveGeneric ''(,,) deriveGeneric ''(,,,) deriveGeneric ''(,,,,) -- 5 deriveGeneric ''(,,,,,) -- deriveGeneric ''(,,,,,,) -- deriveGeneric ''(,,,,,,,) -- deriveGeneric ''(,,,,,,,,) -- deriveGeneric ''(,,,,,,,,,) -- 10 -- deriveGeneric ''(,,,,,,,,,,) -- deriveGeneric ''(,,,,,,,,,,,) -- deriveGeneric ''(,,,,,,,,,,,,) -- deriveGeneric ''(,,,,,,,,,,,,,) -- deriveGeneric ''(,,,,,,,,,,,,,,) -- 15 -- deriveGeneric ''(,,,,,,,,,,,,,,,) -- deriveGeneric ''(,,,,,,,,,,,,,,,,) -- deriveGeneric ''(,,,,,,,,,,,,,,,,,) -- deriveGeneric ''(,,,,,,,,,,,,,,,,,,) -- deriveGeneric ''(,,,,,,,,,,,,,,,,,,,) -- 20 -- deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,) -- deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,,) -- deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,,,) -- deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,,,,) -- deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,,,,,) -- 25 -- deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,,,,,,) -- deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,,,,,,,) -- deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,,,,,,,,) -- deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,,,,,,,,,) -- deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) -- 30 -- deriveGeneric ''[] deriveGeneric1 ''Maybe deriveGeneric1 ''Either deriveGeneric1 ''(,) -- 2 deriveGeneric1 ''(,,) deriveGeneric1 ''(,,,) deriveGeneric1 ''(,,,,) -- 5 deriveGeneric1 ''(,,,,,) deriveGeneric1 ''(,,,,,,) deriveGeneric1 ''(,,,,,,,) deriveGeneric1 ''(,,,,,,,,) deriveGeneric1 ''(,,,,,,,,,) -- 10 deriveGeneric1 ''(,,,,,,,,,,) deriveGeneric1 ''(,,,,,,,,,,,) deriveGeneric1 ''(,,,,,,,,,,,,) deriveGeneric1 ''(,,,,,,,,,,,,,) deriveGeneric1 ''(,,,,,,,,,,,,,,) -- 15 deriveGeneric1 ''(,,,,,,,,,,,,,,,) deriveGeneric1 ''(,,,,,,,,,,,,,,,,) deriveGeneric1 ''(,,,,,,,,,,,,,,,,,) deriveGeneric1 ''(,,,,,,,,,,,,,,,,,,) deriveGeneric1 ''(,,,,,,,,,,,,,,,,,,,) -- 20 deriveGeneric1 ''(,,,,,,,,,,,,,,,,,,,,) deriveGeneric1 ''(,,,,,,,,,,,,,,,,,,,,,) deriveGeneric1 ''(,,,,,,,,,,,,,,,,,,,,,,) deriveGeneric1 ''(,,,,,,,,,,,,,,,,,,,,,,,) deriveGeneric1 ''(,,,,,,,,,,,,,,,,,,,,,,,,) -- 25 deriveGeneric1 ''(,,,,,,,,,,,,,,,,,,,,,,,,,) deriveGeneric1 ''(,,,,,,,,,,,,,,,,,,,,,,,,,,) deriveGeneric1 ''(,,,,,,,,,,,,,,,,,,,,,,,,,,,) deriveGeneric1 ''(,,,,,,,,,,,,,,,,,,,,,,,,,,,,) deriveGeneric1 ''(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) -- 30 deriveGeneric1 ''[] -- Other types from base: -- From Control.Exception: deriveGeneric ''IOException deriveGeneric ''ArithException deriveGeneric ''ArrayException deriveGeneric ''AssertionFailed deriveGeneric ''AsyncException deriveGeneric ''NonTermination deriveGeneric ''NestedAtomically deriveGeneric ''BlockedIndefinitelyOnMVar deriveGeneric ''BlockedIndefinitelyOnSTM deriveGeneric ''AllocationLimitExceeded deriveGeneric ''Deadlock deriveGeneric ''NoMethodError deriveGeneric ''PatternMatchFail deriveGeneric ''RecConError deriveGeneric ''RecSelError deriveGeneric ''RecUpdError deriveGeneric ''ErrorCall deriveGeneric ''TypeError deriveGeneric ''MaskingState -- From Data.Char: deriveGeneric ''GeneralCategory -- From Data.Complex: deriveGeneric ''Complex -- From Data.Data: deriveGeneric ''DataRep deriveGeneric ''Fixity deriveGeneric ''ConstrRep -- From Data.Fixed: deriveGeneric ''Fixed deriveGeneric ''E0 deriveGeneric ''E1 deriveGeneric ''E2 deriveGeneric ''E3 deriveGeneric ''E6 deriveGeneric ''E9 deriveGeneric ''E12 -- From Data.Functor.Compose deriveGeneric ''Compose deriveGeneric1 ''Compose -- From Data.Functor.Const deriveGeneric ''Data.Functor.Const.Const deriveGeneric1 ''Data.Functor.Const.Const -- From Data.Functor.Identity deriveGeneric ''Identity deriveGeneric1 ''Identity -- From Data.Functor.Product deriveGeneric ''Product deriveGeneric1 ''Product -- From Data.Functor.Sum deriveGeneric ''Sum deriveGeneric1 ''Sum -- From Data.List.NonEmpty deriveGeneric ''NonEmpty deriveGeneric1 ''NonEmpty -- From Data.Monoid: deriveGeneric ''Data.Monoid.Dual deriveGeneric ''Data.Monoid.Endo deriveGeneric ''Data.Monoid.All deriveGeneric ''Data.Monoid.Any deriveGeneric ''Data.Monoid.Sum deriveGeneric ''Data.Monoid.Product deriveGeneric ''Data.Monoid.First deriveGeneric ''Data.Monoid.Last deriveGeneric ''Data.Monoid.Alt deriveGeneric1 ''Data.Monoid.Dual -- deriveGeneric1 ''Data.Monoid.Endo deriveGeneric1 ''Data.Monoid.Sum deriveGeneric1 ''Data.Monoid.Product deriveGeneric1 ''Data.Monoid.First deriveGeneric1 ''Data.Monoid.Last deriveGeneric1 ''Data.Monoid.Alt -- From Data.Ord: deriveGeneric ''Down deriveGeneric1 ''Down -- From Data.Proxy: deriveGeneric ''Proxy deriveGeneric1 ''Proxy -- From Data.Semigroup: deriveGeneric ''Data.Semigroup.Min deriveGeneric ''Data.Semigroup.Max deriveGeneric ''Data.Semigroup.First deriveGeneric ''Data.Semigroup.Last deriveGeneric ''Data.Semigroup.WrappedMonoid deriveGeneric ''Data.Semigroup.Option deriveGeneric ''Data.Semigroup.Arg deriveGeneric1 ''Data.Semigroup.Min deriveGeneric1 ''Data.Semigroup.Max deriveGeneric1 ''Data.Semigroup.First deriveGeneric1 ''Data.Semigroup.Last deriveGeneric1 ''Data.Semigroup.WrappedMonoid deriveGeneric1 ''Data.Semigroup.Option deriveGeneric1 ''Data.Semigroup.Arg -- From Data.Version: deriveGeneric ''Version -- From Data.Void: deriveGeneric ''Void -- From Foreign.C.Error: deriveGeneric ''Errno -- From Foreign.C.Types: deriveGeneric ''CChar deriveGeneric ''CSChar deriveGeneric ''CUChar deriveGeneric ''CShort deriveGeneric ''CUShort deriveGeneric ''CInt deriveGeneric ''CUInt deriveGeneric ''CLong deriveGeneric ''CULong deriveGeneric ''CPtrdiff deriveGeneric ''CSize deriveGeneric ''CWchar deriveGeneric ''CSigAtomic deriveGeneric ''CLLong deriveGeneric ''CULLong deriveGeneric ''CIntPtr deriveGeneric ''CUIntPtr deriveGeneric ''CIntMax deriveGeneric ''CUIntMax deriveGeneric ''CClock deriveGeneric ''CTime deriveGeneric ''CUSeconds deriveGeneric ''CSUSeconds deriveGeneric ''CFloat deriveGeneric ''CDouble -- From GHC.ByteOrder: deriveGeneric ''ByteOrder -- From GHC.Conc: deriveGeneric ''ThreadStatus deriveGeneric ''BlockReason -- From GHC.ExecutionStack: deriveGeneric ''Location deriveGeneric ''SrcLoc -- From GHC.Exts: deriveGeneric ''RuntimeRep deriveGeneric ''VecCount deriveGeneric ''VecElem -- From GHC.Generics: deriveGeneric ''GHC.Generics.K1 deriveGeneric ''GHC.Generics.U1 deriveGeneric ''GHC.Generics.V1 deriveGeneric ''GHC.Generics.Par1 deriveGeneric ''GHC.Generics.M1 deriveGeneric ''GHC.Generics.R deriveGeneric ''GHC.Generics.S deriveGeneric ''GHC.Generics.D deriveGeneric ''GHC.Generics.C deriveGeneric ''(GHC.Generics.:*:) deriveGeneric ''(GHC.Generics.:+:) deriveGeneric ''(GHC.Generics.:.:) deriveGeneric ''GHC.Generics.Associativity deriveGeneric ''GHC.Generics.DecidedStrictness deriveGeneric ''GHC.Generics.SourceStrictness deriveGeneric ''GHC.Generics.SourceUnpackedness deriveGeneric ''GHC.Generics.Fixity -- From GHC.IO.Buffer: deriveGeneric ''Buffer deriveGeneric ''BufferState -- From GHC.IO.Device: deriveGeneric ''IODeviceType -- From GHC.IO.Encoding: deriveGeneric ''BufferCodec deriveGeneric ''CodingProgress -- From GHC.IO.Encoding.Failure: deriveGeneric ''CodingFailureMode -- From GHC.Fingerprint deriveGeneric ''Fingerprint -- From GHC.Float deriveGeneric ''FFFormat -- From GHC.IO.Exception: deriveGeneric ''FixIOException deriveGeneric ''IOErrorType -- From GHC.IO.Handle: deriveGeneric ''HandlePosn deriveGeneric ''LockMode -- From GHC.RTS.Flags: deriveGeneric ''RTSFlags deriveGeneric ''GiveGCStats deriveGeneric ''GCFlags deriveGeneric ''ConcFlags deriveGeneric ''MiscFlags deriveGeneric ''DebugFlags deriveGeneric ''DoCostCentres deriveGeneric ''CCFlags deriveGeneric ''DoHeapProfile deriveGeneric ''ProfFlags deriveGeneric ''DoTrace deriveGeneric ''TraceFlags deriveGeneric ''TickyFlags deriveGeneric ''ParFlags -- From GHC.Stack: deriveGeneric ''GHC.Stack.SrcLoc deriveGeneric ''GHC.Stack.CallStack -- From GHC.StaticPtr: deriveGeneric ''StaticPtrInfo -- From GHC.Stats: deriveGeneric ''RTSStats deriveGeneric ''GCDetails -- From System.Console.GetOpt: deriveGeneric ''ArgOrder deriveGeneric ''OptDescr deriveGeneric ''ArgDescr -- From System.Exit: deriveGeneric ''ExitCode -- From System.IO: deriveGeneric ''IOMode deriveGeneric ''BufferMode deriveGeneric ''SeekMode deriveGeneric ''Newline deriveGeneric ''NewlineMode -- From Text.Printf: deriveGeneric ''FieldFormat deriveGeneric ''FormatAdjustment deriveGeneric ''FormatSign deriveGeneric ''FormatParse -- From Text.Read.Lex: deriveGeneric ''Lexeme deriveGeneric ''Number -- Abstract / primitive datatypes (we don't derive Generic for these): -- -- Ratio -- Integer -- ThreadId -- Chan -- MVar -- QSem -- QSemN -- DataType -- Dynamic -- IORef -- TypeRep -- TyCon -- TypeRepKey -- KProxy -- not abstract, but intended for kind-level use -- STRef -- Unique -- ForeignPtr -- CFile -- CFpos -- CJmpBuf -- Pool -- Ptr -- FunPtr -- IntPtr -- WordPtr -- StablePtr -- Char -- Double -- Float -- Int -- Int8 -- Int16 -- Int32 -- Int64 -- Word -- Word8 -- Word16 -- Word32 -- Word64 -- IO -- ST -- (->) -- RealWorld -- Handle -- HandlePosn -- TextEncoding -- StableName -- Weak -- ReadP -- ReadPrec -- STM -- TVar -- Natural -- Event -- EventManager -- CostCentre -- CostCentreStack -- -- Datatypes we cannot currently handle: -- -- SomeException -- SomeAsyncException -- Handler -- Coercion -- (:~:)