| 1 | {-# LANGUAGE CPP #-} |
|---|
| 2 | {-# LANGUAGE TypeSynonymInstances #-} |
|---|
| 3 | {-# LANGUAGE StandaloneDeriving #-} |
|---|
| 4 | {-# LANGUAGE DeriveDataTypeable #-} |
|---|
| 5 | |
|---|
| 6 | module Instances0 where |
|---|
| 7 | |
|---|
| 8 | import GHC hiding(TyCon) |
|---|
| 9 | import SrcLoc |
|---|
| 10 | import RdrName |
|---|
| 11 | import OccName |
|---|
| 12 | import FastString |
|---|
| 13 | import Bag |
|---|
| 14 | import Module |
|---|
| 15 | import BasicTypes |
|---|
| 16 | import Var |
|---|
| 17 | import ForeignCall |
|---|
| 18 | |
|---|
| 19 | import Data.Generics |
|---|
| 20 | import NameSet |
|---|
| 21 | import TypeRep |
|---|
| 22 | import qualified TyCon |
|---|
| 23 | |
|---|
| 24 | #include "Typeable.h" |
|---|
| 25 | |
|---|
| 26 | -- TODO: good for generalized show, but is this sound in general? |
|---|
| 27 | abstractConstr n = mkConstr (abstractDataType n) ("{abstract:"++n++"}") [] Prefix |
|---|
| 28 | abstractDataType n = mkDataType n [abstractConstr n] |
|---|
| 29 | |
|---|
| 30 | -- Typeable |
|---|
| 31 | |
|---|
| 32 | INSTANCE_TYPEABLE0(SrcSpan,srcSpanTc,"SrcSpan") |
|---|
| 33 | instance Data SrcSpan where |
|---|
| 34 | -- don't traverse? |
|---|
| 35 | toConstr _ = abstractConstr "SrcSpan" |
|---|
| 36 | gunfold _ _ = error "gunfold" |
|---|
| 37 | dataTypeOf _ = mkNorepType "SrcSpan" |
|---|
| 38 | |
|---|
| 39 | INSTANCE_TYPEABLE0(Module,moduleTc,"Module") |
|---|
| 40 | instance Data Module where |
|---|
| 41 | -- don't traverse? |
|---|
| 42 | toConstr _ = abstractConstr "Module" |
|---|
| 43 | gunfold _ _ = error "gunfold" |
|---|
| 44 | dataTypeOf _ = mkNorepType "Module" |
|---|
| 45 | |
|---|
| 46 | INSTANCE_TYPEABLE0(ModuleName,moduleNameTc,"ModuleName") |
|---|
| 47 | instance Data ModuleName where |
|---|
| 48 | -- don't traverse? |
|---|
| 49 | toConstr _ = abstractConstr "ModuleName" |
|---|
| 50 | gunfold _ _ = error "gunfold" |
|---|
| 51 | dataTypeOf _ = mkNorepType "ModuleName" |
|---|
| 52 | |
|---|
| 53 | deriving instance Typeable RdrName |
|---|
| 54 | deriving instance Data RdrName |
|---|
| 55 | |
|---|
| 56 | INSTANCE_TYPEABLE0(OccName,occNameTc,"OccName") |
|---|
| 57 | instance Data OccName where |
|---|
| 58 | -- don't traverse? |
|---|
| 59 | toConstr _ = abstractConstr "OccName" |
|---|
| 60 | gunfold _ _ = error "gunfold" |
|---|
| 61 | dataTypeOf _ = mkNorepType "OccName" |
|---|
| 62 | |
|---|
| 63 | INSTANCE_TYPEABLE0(Name,nameTc,"Name") |
|---|
| 64 | instance Data Name where |
|---|
| 65 | -- don't traverse? |
|---|
| 66 | toConstr _ = abstractConstr "Name" |
|---|
| 67 | gunfold _ _ = error "gunfold" |
|---|
| 68 | dataTypeOf _ = mkNorepType "Name" |
|---|
| 69 | |
|---|
| 70 | deriving instance Typeable FastString |
|---|
| 71 | instance Data FastString where |
|---|
| 72 | -- don't traverse? |
|---|
| 73 | toConstr _ = abstractConstr "FastString" |
|---|
| 74 | gunfold _ _ = error "gunfold" |
|---|
| 75 | dataTypeOf _ = mkNorepType "FastString" |
|---|
| 76 | |
|---|
| 77 | deriving instance Typeable HsExplicitForAll |
|---|
| 78 | deriving instance Data HsExplicitForAll |
|---|
| 79 | |
|---|
| 80 | deriving instance Typeable HsBang |
|---|
| 81 | deriving instance Data HsBang |
|---|
| 82 | |
|---|
| 83 | deriving instance Typeable Boxity |
|---|
| 84 | deriving instance Data Boxity |
|---|
| 85 | |
|---|
| 86 | deriving instance Typeable OverLitVal |
|---|
| 87 | deriving instance Data OverLitVal |
|---|
| 88 | |
|---|
| 89 | deriving instance Typeable RecFlag |
|---|
| 90 | deriving instance Data RecFlag |
|---|
| 91 | |
|---|
| 92 | deriving instance Typeable BasicTypes.Fixity |
|---|
| 93 | deriving instance Data BasicTypes.Fixity |
|---|
| 94 | |
|---|
| 95 | deriving instance Typeable HsArrAppType |
|---|
| 96 | deriving instance Data HsArrAppType |
|---|
| 97 | |
|---|
| 98 | deriving instance Typeable FixityDirection |
|---|
| 99 | deriving instance Data FixityDirection |
|---|
| 100 | |
|---|
| 101 | INSTANCE_TYPEABLE0(DataCon,dataConTc,"DataCon") |
|---|
| 102 | instance Data DataCon where |
|---|
| 103 | -- don't traverse? |
|---|
| 104 | toConstr _ = abstractConstr "DataCon" |
|---|
| 105 | gunfold _ _ = error "gunfold" |
|---|
| 106 | dataTypeOf _ = mkNorepType "DataCon" |
|---|
| 107 | |
|---|
| 108 | INSTANCE_TYPEABLE0(Var,varTc,"Var") |
|---|
| 109 | instance Data Var where |
|---|
| 110 | -- don't traverse? |
|---|
| 111 | toConstr _ = abstractConstr "Var" |
|---|
| 112 | gunfold _ _ = error "gunfold" |
|---|
| 113 | dataTypeOf _ = mkNorepType "Var" |
|---|
| 114 | |
|---|
| 115 | deriving instance Typeable InlineSpec |
|---|
| 116 | deriving instance Data InlineSpec |
|---|
| 117 | |
|---|
| 118 | deriving instance Typeable ForeignImport |
|---|
| 119 | deriving instance Data ForeignImport |
|---|
| 120 | |
|---|
| 121 | deriving instance Typeable ForeignExport |
|---|
| 122 | deriving instance Data ForeignExport |
|---|
| 123 | |
|---|
| 124 | deriving instance Typeable CImportSpec |
|---|
| 125 | deriving instance Data CImportSpec |
|---|
| 126 | |
|---|
| 127 | deriving instance Typeable CExportSpec |
|---|
| 128 | deriving instance Data CExportSpec |
|---|
| 129 | |
|---|
| 130 | deriving instance Typeable DNCallSpec |
|---|
| 131 | deriving instance Data DNCallSpec |
|---|
| 132 | |
|---|
| 133 | deriving instance Typeable Safety |
|---|
| 134 | deriving instance Data Safety |
|---|
| 135 | |
|---|
| 136 | deriving instance Typeable CCallConv |
|---|
| 137 | deriving instance Data CCallConv |
|---|
| 138 | |
|---|
| 139 | deriving instance Typeable DNKind |
|---|
| 140 | deriving instance Data DNKind |
|---|
| 141 | |
|---|
| 142 | deriving instance Typeable DNType |
|---|
| 143 | deriving instance Data DNType |
|---|
| 144 | |
|---|
| 145 | deriving instance Typeable CCallTarget |
|---|
| 146 | deriving instance Data CCallTarget |
|---|
| 147 | |
|---|
| 148 | deriving instance Typeable Activation |
|---|
| 149 | deriving instance Data Activation |
|---|
| 150 | |
|---|
| 151 | INSTANCE_TYPEABLE0(NameSet,nameSetTc,"NameSet") |
|---|
| 152 | instance Data NameSet where |
|---|
| 153 | gfoldl k z s = z mkNameSet `k` nameSetToList s -- traverse abstractly |
|---|
| 154 | toConstr _ = abstractConstr "NameSet" |
|---|
| 155 | gunfold _ _ = error "gunfold" |
|---|
| 156 | dataTypeOf _ = mkNorepType "NameSet" |
|---|
| 157 | |
|---|
| 158 | deriving instance Typeable FoType |
|---|
| 159 | deriving instance Data FoType |
|---|
| 160 | |
|---|
| 161 | deriving instance Typeable FamilyFlavour |
|---|
| 162 | deriving instance Data FamilyFlavour |
|---|
| 163 | |
|---|
| 164 | deriving instance Typeable NewOrData |
|---|
| 165 | deriving instance Data NewOrData |
|---|
| 166 | |
|---|
| 167 | INSTANCE_TYPEABLE0(TyCon.TyCon,tyConTc,"TyCon") |
|---|
| 168 | instance Data TyCon.TyCon where |
|---|
| 169 | toConstr _ = abstractConstr "TyCon.TyCon" |
|---|
| 170 | gunfold _ _ = error "gunfold" |
|---|
| 171 | dataTypeOf _ = mkNorepType "TyCon.TyCon" |
|---|
| 172 | |
|---|
| 173 | INSTANCE_TYPEABLE0(Class,classTc,"Class") |
|---|
| 174 | instance Data Class where |
|---|
| 175 | toConstr _ = abstractConstr "Class" |
|---|
| 176 | gunfold _ _ = error "gunfold" |
|---|
| 177 | dataTypeOf _ = mkNorepType "Class" |
|---|
| 178 | |
|---|