-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Executable and Linkable Format (ELF) data structures. -- -- This package provides Executable and Linkable Format (ELF) data -- structures. @package data-elf @version 0.1 -- | This module provides ELF data structures and (de)serialization -- routines. module Data.Elf -- | File class. newtype FileClass FileClass :: Word8 -> FileClass [unFileClass] :: FileClass -> Word8 -- | Invalid class (ELFCLASSNONE). invalidFileClass :: FileClass -- | ELF32 class (ELFCLASS32). elf32FileClass :: FileClass -- | ELF64 class (ELFCLASS64). elf64FileClass :: FileClass -- | File class type-level index. class (Typeable c, Typeable (Addr c), Data (Addr c), Typeable (Off c), Data (Off c), Typeable (UnSymIx c), Data (UnSymIx c), Typeable (UnRelType c), Data (UnRelType c), Show (Addr c), Read (Addr c), Show (Off c), Read (Off c), Show (UnSymIx c), Read (UnSymIx c), Show (UnRelType c), Read (UnRelType c), Eq (Addr c), Ord (Addr c), Bounded (Addr c), Enum (Addr c), Num (Addr c), Integral (Addr c), Real (Addr c), Bits (Addr c), FiniteBits (Addr c), Eq (Off c), Ord (Off c), Bounded (Off c), Enum (Off c), Num (Off c), Integral (Off c), Real (Off c), Bits (Off c), FiniteBits (Off c), Eq (UnSymIx c), Ord (UnSymIx c), Bounded (UnSymIx c), Enum (UnSymIx c), Ix (UnSymIx c), Num (UnSymIx c), Integral (UnSymIx c), Real (UnSymIx c), Bits (UnSymIx c), FiniteBits (UnSymIx c), Eq (UnRelType c), Ord (UnRelType c), Bounded (UnRelType c), Enum (UnRelType c), Ix (UnRelType c)) => IsFileClass c where type Addr c type Off c type UnSymIx c type UnRelType c where { type family Addr c; type family Off c; type family UnSymIx c; type family UnRelType c; } fileClass :: IsFileClass c => Proxy c -> FileClass -- | 32-bit ELF class type-level index. data Elf32 Elf32 :: Elf32 -- | Elf32 proxy value. anElf32 :: Proxy Elf32 -- | 64-bit ELF class type-level index. data Elf64 Elf64 :: Elf64 -- | Elf64 proxy value. anElf64 :: Proxy Elf64 -- | File type. newtype FileType FileType :: Word16 -> FileType [unFileType] :: FileType -> Word16 -- | No file type (ET_NONE). noneFileType :: FileType -- | Relocatable object file (ET_REL). relFileType :: FileType -- | Executable file (ET_EXEC). execFileType :: FileType -- | Shared object file (ET_DYN). dynFileType :: FileType -- | Core file (ET_CORE). coreFileType :: FileType -- | First environment-specific type (ET_LOOS). loOsFileType :: FileType -- | Last environment-specific type (ET_HIOS). hiOsFileType :: FileType -- | First processor-specific type (ET_LOPROC). loProcFileType :: FileType -- | Last processor-specific type (ET_HIPROC). hiProcFileType :: FileType -- | Machine architecture. newtype Machine Machine :: Word16 -> Machine [unMachine] :: Machine -> Word16 -- | No machine (EM_NONE). undefMachine :: Machine -- | Intel 80386 (EM_386). i386Machine :: Machine -- | AMD x86-64 (EM_X86_64). amd64Machine :: Machine -- | Architecture-specific flags. newtype MachFlags MachFlags :: Word32 -> MachFlags [unMachFlags] :: MachFlags -> Word32 -- | ELF version. newtype Version Version :: Word8 -> Version [unVersion] :: Version -> Word8 -- | Invalid version. invalidVersion :: Version -- | Version 1. firstVersion :: Version -- | Data encoding. newtype DataEnc DataEnc :: Word8 -> DataEnc [unDataEnc] :: DataEnc -> Word8 -- | Invalid data encoding. invalidDataEnc :: DataEnc -- | Little-endian data encoding (ELFDATA2LSB). lsbDataEnc :: DataEnc -- | Big-endian data encoding (ELFDATA2MSB). msbDataEnc :: DataEnc -- | System ABI. newtype OsAbi OsAbi :: Word8 -> OsAbi [unOsAbi] :: OsAbi -> Word8 -- | System V (ELFOSABI_NONE). sysvOsAbi :: OsAbi -- | HP-UX (ELFOSABI_HPUX). hpuxOsAbi :: OsAbi -- | NetBSD (ELFOSABI_NETBSD). netBsdOsAbi :: OsAbi -- | GNU (ELFOSABI_GNU, ELFOSABI_LINUX). gnuOsAbi :: OsAbi -- | Solaris (ELFOSABI_SOLARIS). solarisOsAbi :: OsAbi -- | AIX (ELFOSABI_AIX). aixOsAbi :: OsAbi -- | IRIX (ELFOSABI_IRIX). irixOsAbi :: OsAbi -- | FreeBSD (ELFOSABI_FREEBSD). freeBsdOsAbi :: OsAbi -- | Tru64 UNIX (ELFOSABI_TRU64). tru64OsAbi :: OsAbi -- | Novell Modesto (ELFOSABI_MODESTO). modestoOsAbi :: OsAbi -- | OpenBSD (ELFOSABI_OPENBSD). openBsdOsAbi :: OsAbi -- | OpenVMS (ELFOSABI_OPENVMS). openVmsOsAbi :: OsAbi -- | Hewlett-Packard Non-Stop Kernel (ELFOSABI_NSK). nskOsAbi :: OsAbi -- | Amiga Research OS (ELFOSABI_AROS). arosOsAbi :: OsAbi -- | FenixOS (ELFOSABI_FENIXOS). fenixOsAbi :: OsAbi -- | Standalone (embedded) application. embedOsAbi :: OsAbi -- | ABI version. newtype AbiVer AbiVer :: Word8 -> AbiVer [unAbiVer] :: AbiVer -> Word8 -- | Undefined ABI version. undefAbiVer :: AbiVer -- | Identification. data Ident Ident :: FileClass -> Version -> DataEnc -> OsAbi -> AbiVer -> Ident [idClass] :: Ident -> FileClass [idVersion] :: Ident -> Version [idDataEnc] :: Ident -> DataEnc [idOsAbi] :: Ident -> OsAbi [idAbiVer] :: Ident -> AbiVer -- | Identification serialized size. identSize :: Int -- | Serialize identification via ByteString builder. buildIdent :: Ident -> Builder -- | File header. data FileHdr c FileHdr :: FileType -> Machine -> Addr c -> MachFlags -> Off c -> Word16 -> Off c -> Word16 -> SecIx -> FileHdr c [fhType] :: FileHdr c -> FileType [fhMachine] :: FileHdr c -> Machine [fhEntry] :: FileHdr c -> Addr c [fhFlags] :: FileHdr c -> MachFlags [fhPhOff] :: FileHdr c -> Off c [fhPhNum] :: FileHdr c -> Word16 [fhShOff] :: FileHdr c -> Off c [fhShNum] :: FileHdr c -> Word16 [fhSnStIx] :: FileHdr c -> SecIx -- | ELF32 file header. type FileHdr32 = FileHdr Elf32 -- | ELF64 file header. type FileHdr64 = FileHdr Elf64 -- | ELF32 file header size. fileHdr32Size :: Int -- | ELF64 file header size. fileHdr64Size :: Int -- | Serialize ELF32 file header via PutM monad. putFileHdr32 :: Endian -> FileHdr32 -> Put -- | Deserialize ELF32 file header via Get monad. getFileHdr32 :: Endian -> Get FileHdr32 -- | Serialize ELF32 file header via ByteString builder. buildFileHdr32 :: Endian -> FileHdr32 -> Builder -- | Serialize ELF64 file header via ByteString builder. buildFileHdr64 :: Endian -> FileHdr64 -> Builder -- | Segment type. newtype SegType SegType :: Word32 -> SegType [unSegType] :: SegType -> Word32 -- | Unused program header entry (PT_NULL). unusedSegType :: SegType -- | Loadable segment (PT_LOAD). loadSegType :: SegType -- | Dynamic linking tables (PT_DYNAMIC). dynSegType :: SegType -- | Program interpreter path name (PT_INTERP). interpSegType :: SegType -- | Note sections (PT_NOTE). noteSegType :: SegType -- | A reserved segment type (PT_SHLIB). shlibSegType :: SegType -- | Program header table (PT_PHDR). phdrSegType :: SegType -- | First environment-specific segment type (PT_LOOS). loOsSegType :: SegType -- | Last environment-specific segment type (PT_HIOS). hiOsSegType :: SegType -- | First processor-specific segment type (PT_LOPROC). loProcSegType :: SegType -- | Last processor-specific segment type (PT_HIPROC). hiProcSegType :: SegType -- | Segment flags. newtype SegFlags SegFlags :: Word32 -> SegFlags [unSegFlags] :: SegFlags -> Word32 -- | Execute permission (PF_X). execSegFlag :: SegFlags -- | Write permission (PF_W). writeSegFlag :: SegFlags -- | Read permission (PF_R). readSegFlag :: SegFlags -- | Environment-specific flags mask (PF_MASKOS). osSegFlags :: SegFlags -- | Processor-specific flags mask (PF_MASKPROC). procSegFlags :: SegFlags -- | Program header table entry. data ProgHdr c ProgHdr :: SegType -> SegFlags -> Off c -> Addr c -> Addr c -> Off c -> Addr c -> Addr c -> ProgHdr c [phType] :: ProgHdr c -> SegType [phFlags] :: ProgHdr c -> SegFlags [phOff] :: ProgHdr c -> Off c [phVirtAddr] :: ProgHdr c -> Addr c [phPhysAddr] :: ProgHdr c -> Addr c [phFileSize] :: ProgHdr c -> Off c [phMemSize] :: ProgHdr c -> Addr c [phAlign] :: ProgHdr c -> Addr c -- | ELF32 program header table entry. type ProgHdr32 = ProgHdr Elf32 -- | ELF64 program header table entry. type ProgHdr64 = ProgHdr Elf64 -- | ELF32 program header table entry size. progHdr32Size :: Int -- | ELF64 program header table entry size. progHdr64Size :: Int -- | Serialize ELF32 program header via PutM monad. putProgHdr32 :: Endian -> ProgHdr32 -> Put -- | Deserialize ELF32 program header via Get monad. getProgHdr32 :: Endian -> Get ProgHdr32 -- | Serialize ELF32 program header via ByteString builder. buildProgHdr32 :: Endian -> ProgHdr32 -> Builder -- | Serialize ELF64 program header via ByteString builder. buildProgHdr64 :: Endian -> ProgHdr64 -> Builder -- | String table index. type StrIx = Word32 -- | Section header entry index. newtype SecIx SecIx :: Word16 -> SecIx [unSecIx] :: SecIx -> Word16 -- | Undefined section reference (SHN_UNDEF). undefSecIx :: SecIx -- | Last regular section index. lastSecIx :: SecIx -- | First environment-specific section index (SHN_LOOS). loOsSecIx :: SecIx -- | Last environment-specific section index (SHN_HIOS). hiOsSecIx :: SecIx -- | First processor-specific section index (SHN_LOPROC). loProcSecIx :: SecIx -- | Last processor-specific section index (SHN_HIPROC). hiProcSecIx :: SecIx -- | Absolute value indicator (SHN_ABS). absSecIx :: SecIx -- | Common block indicator (SHN_COMMON). commonSecIx :: SecIx -- | Escape value (SHN_XINDEX). xIndexSecIx :: SecIx -- | Section type. newtype SecType SecType :: Word32 -> SecType [unSecType] :: SecType -> Word32 -- | Unused section (SHT_NULL). unusedSecType :: SecType -- | Program information (SHT_PROGBITS). progBitsSecType :: SecType -- | Symbol table (SHT_SYMTAB). symSecType :: SecType -- | String table (SHT_STRTAB). strSecType :: SecType -- | Relocation entries (SHT_RELA). relaSecType :: SecType -- | Symbol hash table (SHT_HASH). hashSecType :: SecType -- | Dynamic linking table (SHT_DYNAMIC). dynSecType :: SecType -- | Note information (SHT_NOTE). noteSecType :: SecType -- | Uninitialized space (SHT_NOBITS). noBitsSecType :: SecType -- | Relocation entries (SHT_REL). relSecType :: SecType -- | A reserved section type (SHT_SHLIB). shlibSecType :: SecType -- | Dynamic loader symbol table (SHT_DYNSYM). dynSymSecType :: SecType -- | First environment-specific section type (SHT_LOOS). loOsSecType :: SecType -- | Last environment-specific section type (SHT_HIOS). hiOsSecType :: SecType -- | First processor-specific section type (SHT_LOPROC). loProcSecType :: SecType -- | Last processor-specific section type (SHT_HIPROC). hiProcSecType :: SecType -- | Section flags. newtype SecFlags SecFlags :: Word32 -> SecFlags [unSecFlags] :: SecFlags -> Word32 -- | Writable data (SHF_WRITE). writeSecFlag :: SecFlags -- | Allocated data (SHF_ALLOC). allocSecFlag :: SecFlags -- | Executable instructions (SHF_EXECINSTR). execSecFlag :: SecFlags -- | Mergeable data (SHF_MERGE). mergeSecFlag :: SecFlags -- | Flag that indicates that shInfo is a section header table -- index. (SHF_INFO_LINK) infoLinkSecFlag :: SecFlags -- | Environment-specific flags mask (SHF_MASKOS). osSecFlags :: SecFlags -- | Processor-specific flags mask (SHF_MASKOS). procSecFlags :: SecFlags -- | Section header table entry. data SecHdr c SecHdr :: StrIx -> SecType -> SecFlags -> Addr c -> Off c -> Addr c -> Word32 -> Word32 -> Addr c -> Addr c -> SecHdr c [shName] :: SecHdr c -> StrIx [shType] :: SecHdr c -> SecType [shFlags] :: SecHdr c -> SecFlags [shAddr] :: SecHdr c -> Addr c [shOff] :: SecHdr c -> Off c [shSize] :: SecHdr c -> Addr c [shLink] :: SecHdr c -> Word32 [shInfo] :: SecHdr c -> Word32 [shAlign] :: SecHdr c -> Addr c [shEntSize] :: SecHdr c -> Addr c -- | ELF32 section header table entry. type SecHdr32 = SecHdr Elf32 -- | ELF64 section header table entry. type SecHdr64 = SecHdr Elf64 -- | ELF32 section header table entry size. secHdr32Size :: Int -- | ELF64 section header table entry size. secHdr64Size :: Int -- | Serialize ELF32 section header via ByteString builder. buildSecHdr32 :: Endian -> SecHdr32 -> Builder -- | Serialize ELF64 section header via ByteString builder. buildSecHdr64 :: Endian -> SecHdr64 -> Builder -- | Section header filled with zeros. zeroSecHdr :: IsFileClass c => SecHdr c -- | Symbol type. newtype SymType SymType :: Word4 -> SymType [unSymType] :: SymType -> Word4 -- | Undefined symbol type (STT_NOTYPE). undefSymType :: SymType -- | Object (STT_OBJECT). objSymType :: SymType -- | Function (STT_FUNC). funSymType :: SymType -- | Section (STT_SECTION). secSymType :: SymType -- | Source file name (STT_FILE). fileSymType :: SymType -- | Common block label (STT_COMMON). commonSymType :: SymType -- | Thread-local storage (STT_TLS). tlsSymType :: SymType -- | First environment-specific symbol type (STT_LOOS). loOsSymType :: SymType -- | Last environment-specific symbol type (STT_HIOS). hiOsSymType :: SymType -- | First processor-specific symbol type (STT_LOPROC). loProcSymType :: SymType -- | Last processor-specific symbol type (STT_HIPROC). hiProcSymType :: SymType -- | Symbol binding type. newtype SymBind SymBind :: Word4 -> SymBind [unSymBind] :: SymBind -> Word4 -- | Local symbol (STB_LOCAL). localSymBind :: SymBind -- | Global symbol (STB_GLOBAL). globalSymBind :: SymBind -- | Lower precedence global symbol (STB_WEAK). weakSymBind :: SymBind -- | First environment-specific symbol binding type (STB_LOOS). loOsSymBind :: SymBind -- | Last environment-specific symbol binding type (STB_HIOS). hiOsSymBind :: SymBind -- | First processor-specific symbol binding type (STB_LOPROC). loProcSymBind :: SymBind -- | Last processor-specific symbol binding type (STB_HIPROC). hiProcSymBind :: SymBind -- | Symbol visibility. data SymVisi -- | Default (specified by the binding type) (STV_DEFAULT) DefSymVisi :: SymVisi -- | Internal (processor-specific hidden type) (STV_INTERNAL) IntSymVisi :: SymVisi -- | Hidden (STV_HIDDEN) HiddenSymVisi :: SymVisi -- | Protected (STV_PROTECTED) ProtSymVisi :: SymVisi -- | Symbol visibility code. unSymVisi :: SymVisi -> Word2 -- | Symbol table index. newtype SymIx c SymIx :: UnSymIx c -> SymIx c [unSymIx] :: SymIx c -> UnSymIx c -- | Undefined symbol table index. undefSymIx :: IsFileClass c => SymIx c -- | Symbol table entry. data SymEnt c SymEnt :: StrIx -> SymBind -> SymType -> SymVisi -> SecIx -> Addr c -> Addr c -> SymEnt c [symName] :: SymEnt c -> StrIx [symBind] :: SymEnt c -> SymBind [symType] :: SymEnt c -> SymType [symVisi] :: SymEnt c -> SymVisi [symSecIx] :: SymEnt c -> SecIx [symAddr] :: SymEnt c -> Addr c [symSize] :: SymEnt c -> Addr c -- | ELF32 symbol table entry. type SymEnt32 = SymEnt Elf32 -- | ELF64 symbol table entry. type SymEnt64 = SymEnt Elf64 -- | ELF32 symbol table entry size. symEnt32Size :: Int -- | ELF64 symbol table entry size. symEnt64Size :: Int -- | Serialize ELF32 symbol table entry via ByteString builder. buildSymEnt32 :: Endian -> SymEnt32 -> Builder -- | Serialize ELF64 symbol table entry via ByteString builder. buildSymEnt64 :: Endian -> SymEnt64 -> Builder -- | Symbol table entry filled with zeros. zeroSymEnt :: IsFileClass c => SymEnt c -- | Relocation type. newtype RelType c RelType :: UnRelType c -> RelType c [unRelType] :: RelType c -> UnRelType c -- | ELF32 relocation type. type RelType32 = RelType Elf32 -- | ELF64 relocation type. type RelType64 = RelType Elf64 -- | Relocation table entry (REL). data RelEnt c RelEnt :: Addr c -> SymIx c -> RelType c -> RelEnt c [relOff] :: RelEnt c -> Addr c [relSymIx] :: RelEnt c -> SymIx c [relType] :: RelEnt c -> RelType c -- | ELF32 relocation table entry (REL). type RelEnt32 = RelEnt Elf32 -- | ELF64 relocation table entry (REL). type RelEnt64 = RelEnt Elf64 -- | Relocation table entry (RELA). data RelaEnt c RelaEnt :: Addr c -> SymIx c -> RelType c -> Addr c -> RelaEnt c [relaOff] :: RelaEnt c -> Addr c [relaSymIx] :: RelaEnt c -> SymIx c [relaType] :: RelaEnt c -> RelType c [relaAddend] :: RelaEnt c -> Addr c -- | ELF32 relocation table entry (RELA). type RelaEnt32 = RelaEnt Elf32 -- | ELF64 relocation table entry (RELA). type RelaEnt64 = RelaEnt Elf64 -- | ELF32 relocation table entry (RELA) size. relaEnt32Size :: Int -- | ELF64 relocation table entry (RELA) size. relaEnt64Size :: Int -- | Serialize ELF32 relocation table entry (RELA) via ByteString -- builder. buildRelaEnt32 :: Endian -> RelaEnt32 -> Builder -- | Serialize ELF64 relocation table entry (RELA) via ByteString -- builder. buildRelaEnt64 :: Endian -> RelaEnt64 -> Builder instance GHC.Arr.Ix Data.Elf.SymVisi instance GHC.Enum.Enum Data.Elf.SymVisi instance GHC.Enum.Bounded Data.Elf.SymVisi instance GHC.Classes.Ord Data.Elf.SymVisi instance GHC.Classes.Eq Data.Elf.SymVisi instance GHC.Read.Read Data.Elf.SymVisi instance GHC.Show.Show Data.Elf.SymVisi instance Data.Data.Data Data.Elf.SymVisi instance GHC.Arr.Ix Data.Elf.SymBind instance GHC.Enum.Enum Data.Elf.SymBind instance GHC.Enum.Bounded Data.Elf.SymBind instance GHC.Classes.Ord Data.Elf.SymBind instance GHC.Classes.Eq Data.Elf.SymBind instance GHC.Read.Read Data.Elf.SymBind instance GHC.Show.Show Data.Elf.SymBind instance Data.Data.Data Data.Elf.SymBind instance GHC.Arr.Ix Data.Elf.SymType instance GHC.Enum.Enum Data.Elf.SymType instance GHC.Enum.Bounded Data.Elf.SymType instance GHC.Classes.Ord Data.Elf.SymType instance GHC.Classes.Eq Data.Elf.SymType instance GHC.Read.Read Data.Elf.SymType instance GHC.Show.Show Data.Elf.SymType instance Data.Data.Data Data.Elf.SymType instance Data.Flags.Base.BoundedFlags Data.Elf.SecFlags instance Data.Flags.Base.Flags Data.Elf.SecFlags instance GHC.Classes.Eq Data.Elf.SecFlags instance GHC.Read.Read Data.Elf.SecFlags instance GHC.Show.Show Data.Elf.SecFlags instance Data.Data.Data Data.Elf.SecFlags instance GHC.Arr.Ix Data.Elf.SecType instance GHC.Enum.Enum Data.Elf.SecType instance GHC.Enum.Bounded Data.Elf.SecType instance GHC.Classes.Ord Data.Elf.SecType instance GHC.Classes.Eq Data.Elf.SecType instance GHC.Read.Read Data.Elf.SecType instance GHC.Show.Show Data.Elf.SecType instance Data.Data.Data Data.Elf.SecType instance GHC.Real.Real Data.Elf.SecIx instance GHC.Real.Integral Data.Elf.SecIx instance Data.Bits.FiniteBits Data.Elf.SecIx instance Data.Bits.Bits Data.Elf.SecIx instance GHC.Num.Num Data.Elf.SecIx instance GHC.Arr.Ix Data.Elf.SecIx instance GHC.Enum.Enum Data.Elf.SecIx instance GHC.Enum.Bounded Data.Elf.SecIx instance GHC.Classes.Ord Data.Elf.SecIx instance GHC.Classes.Eq Data.Elf.SecIx instance GHC.Read.Read Data.Elf.SecIx instance GHC.Show.Show Data.Elf.SecIx instance Data.Data.Data Data.Elf.SecIx instance Data.Flags.Base.BoundedFlags Data.Elf.SegFlags instance Data.Flags.Base.Flags Data.Elf.SegFlags instance GHC.Classes.Eq Data.Elf.SegFlags instance GHC.Read.Read Data.Elf.SegFlags instance GHC.Show.Show Data.Elf.SegFlags instance Data.Data.Data Data.Elf.SegFlags instance GHC.Arr.Ix Data.Elf.SegType instance GHC.Enum.Enum Data.Elf.SegType instance GHC.Enum.Bounded Data.Elf.SegType instance GHC.Classes.Ord Data.Elf.SegType instance GHC.Classes.Eq Data.Elf.SegType instance GHC.Read.Read Data.Elf.SegType instance GHC.Show.Show Data.Elf.SegType instance Data.Data.Data Data.Elf.SegType instance Data.Data.Data Data.Elf.Ident instance GHC.Arr.Ix Data.Elf.AbiVer instance GHC.Enum.Enum Data.Elf.AbiVer instance GHC.Enum.Bounded Data.Elf.AbiVer instance GHC.Classes.Ord Data.Elf.AbiVer instance GHC.Classes.Eq Data.Elf.AbiVer instance GHC.Read.Read Data.Elf.AbiVer instance GHC.Show.Show Data.Elf.AbiVer instance Data.Data.Data Data.Elf.AbiVer instance GHC.Arr.Ix Data.Elf.OsAbi instance GHC.Enum.Enum Data.Elf.OsAbi instance GHC.Enum.Bounded Data.Elf.OsAbi instance GHC.Classes.Ord Data.Elf.OsAbi instance GHC.Classes.Eq Data.Elf.OsAbi instance GHC.Read.Read Data.Elf.OsAbi instance GHC.Show.Show Data.Elf.OsAbi instance Data.Data.Data Data.Elf.OsAbi instance GHC.Arr.Ix Data.Elf.DataEnc instance GHC.Enum.Enum Data.Elf.DataEnc instance GHC.Enum.Bounded Data.Elf.DataEnc instance GHC.Classes.Ord Data.Elf.DataEnc instance GHC.Classes.Eq Data.Elf.DataEnc instance GHC.Read.Read Data.Elf.DataEnc instance GHC.Show.Show Data.Elf.DataEnc instance Data.Data.Data Data.Elf.DataEnc instance GHC.Arr.Ix Data.Elf.Version instance GHC.Enum.Enum Data.Elf.Version instance GHC.Enum.Bounded Data.Elf.Version instance GHC.Classes.Ord Data.Elf.Version instance GHC.Classes.Eq Data.Elf.Version instance GHC.Read.Read Data.Elf.Version instance GHC.Show.Show Data.Elf.Version instance Data.Data.Data Data.Elf.Version instance Data.Flags.Base.BoundedFlags Data.Elf.MachFlags instance Data.Flags.Base.Flags Data.Elf.MachFlags instance GHC.Classes.Eq Data.Elf.MachFlags instance GHC.Read.Read Data.Elf.MachFlags instance GHC.Show.Show Data.Elf.MachFlags instance Data.Data.Data Data.Elf.MachFlags instance GHC.Arr.Ix Data.Elf.Machine instance GHC.Enum.Enum Data.Elf.Machine instance GHC.Enum.Bounded Data.Elf.Machine instance GHC.Classes.Ord Data.Elf.Machine instance GHC.Classes.Eq Data.Elf.Machine instance GHC.Read.Read Data.Elf.Machine instance GHC.Show.Show Data.Elf.Machine instance Data.Data.Data Data.Elf.Machine instance GHC.Arr.Ix Data.Elf.FileType instance GHC.Enum.Enum Data.Elf.FileType instance GHC.Enum.Bounded Data.Elf.FileType instance GHC.Classes.Ord Data.Elf.FileType instance GHC.Classes.Eq Data.Elf.FileType instance GHC.Read.Read Data.Elf.FileType instance GHC.Show.Show Data.Elf.FileType instance Data.Data.Data Data.Elf.FileType instance Data.Data.Data Data.Elf.Elf64 instance Data.Data.Data Data.Elf.Elf32 instance GHC.Arr.Ix Data.Elf.FileClass instance GHC.Enum.Enum Data.Elf.FileClass instance GHC.Enum.Bounded Data.Elf.FileClass instance GHC.Classes.Ord Data.Elf.FileClass instance GHC.Classes.Eq Data.Elf.FileClass instance GHC.Read.Read Data.Elf.FileClass instance GHC.Show.Show Data.Elf.FileClass instance Data.Data.Data Data.Elf.FileClass instance (Data.Data.Data c, Data.Elf.IsFileClass c) => Data.Data.Data (Data.Elf.FileHdr c) instance (Data.Data.Data c, Data.Elf.IsFileClass c) => Data.Data.Data (Data.Elf.ProgHdr c) instance (Data.Data.Data c, Data.Elf.IsFileClass c) => Data.Data.Data (Data.Elf.SecHdr c) instance (Data.Data.Data c, Data.Elf.IsFileClass c) => Data.Data.Data (Data.Elf.SymIx c) instance Data.Elf.IsFileClass c => GHC.Show.Show (Data.Elf.SymIx c) instance Data.Elf.IsFileClass c => GHC.Read.Read (Data.Elf.SymIx c) instance Data.Elf.IsFileClass c => GHC.Classes.Eq (Data.Elf.SymIx c) instance Data.Elf.IsFileClass c => GHC.Classes.Ord (Data.Elf.SymIx c) instance Data.Elf.IsFileClass c => GHC.Enum.Bounded (Data.Elf.SymIx c) instance Data.Elf.IsFileClass c => GHC.Enum.Enum (Data.Elf.SymIx c) instance Data.Elf.IsFileClass c => GHC.Arr.Ix (Data.Elf.SymIx c) instance Data.Elf.IsFileClass c => GHC.Num.Num (Data.Elf.SymIx c) instance Data.Elf.IsFileClass c => Data.Bits.Bits (Data.Elf.SymIx c) instance Data.Elf.IsFileClass c => Data.Bits.FiniteBits (Data.Elf.SymIx c) instance Data.Elf.IsFileClass c => GHC.Real.Integral (Data.Elf.SymIx c) instance Data.Elf.IsFileClass c => GHC.Real.Real (Data.Elf.SymIx c) instance (Data.Data.Data c, Data.Elf.IsFileClass c) => Data.Data.Data (Data.Elf.SymEnt c) instance (Data.Data.Data c, Data.Elf.IsFileClass c) => Data.Data.Data (Data.Elf.RelType c) instance Data.Elf.IsFileClass c => GHC.Show.Show (Data.Elf.RelType c) instance Data.Elf.IsFileClass c => GHC.Read.Read (Data.Elf.RelType c) instance Data.Elf.IsFileClass c => GHC.Classes.Eq (Data.Elf.RelType c) instance Data.Elf.IsFileClass c => GHC.Classes.Ord (Data.Elf.RelType c) instance Data.Elf.IsFileClass c => GHC.Enum.Bounded (Data.Elf.RelType c) instance Data.Elf.IsFileClass c => GHC.Enum.Enum (Data.Elf.RelType c) instance Data.Elf.IsFileClass c => GHC.Arr.Ix (Data.Elf.RelType c) instance (Data.Data.Data c, Data.Elf.IsFileClass c) => Data.Data.Data (Data.Elf.RelEnt c) instance Data.Elf.IsFileClass c => GHC.Show.Show (Data.Elf.RelEnt c) instance Data.Elf.IsFileClass c => GHC.Read.Read (Data.Elf.RelEnt c) instance Data.Elf.IsFileClass c => GHC.Classes.Eq (Data.Elf.RelEnt c) instance (Data.Data.Data c, Data.Elf.IsFileClass c) => Data.Data.Data (Data.Elf.RelaEnt c) instance Data.Elf.IsFileClass c => GHC.Show.Show (Data.Elf.RelaEnt c) instance Data.Elf.IsFileClass c => GHC.Read.Read (Data.Elf.RelaEnt c) instance Data.Elf.IsFileClass c => GHC.Classes.Eq (Data.Elf.RelaEnt c) instance Data.Elf.IsFileClass Data.Elf.Elf32 instance Data.Elf.IsFileClass Data.Elf.Elf64 instance Data.Binary.Class.Binary Data.Elf.Ident