module Data.Generics.TH.VarSet (varSet) where
import Language.Haskell.TH.Syntax
import GHC.Base
import qualified Data.Set as Set
import qualified Data.Maybe
accVarRef :: Exp -> Set.Set Name -> Set.Set Name
accVarRef (VarE n) set = Set.insert n set
accVarRef _ set = set
varSet :: Exp -> Set.Set Name
varSet e_0 = (let memoized_1 = \x_2 acc_3 -> accVarRef x_2 ((\_x_4 -> case _x_4 of
Language.Haskell.TH.Syntax.VarE arg_5 -> memoized_6 arg_5 acc_3
Language.Haskell.TH.Syntax.ConE arg_7 -> memoized_6 arg_7 acc_3
Language.Haskell.TH.Syntax.LitE arg_8 -> memoized_9 arg_8 acc_3
Language.Haskell.TH.Syntax.AppE arg_10
arg_11 -> memoized_1 arg_10 (memoized_1 arg_11 acc_3)
Language.Haskell.TH.Syntax.InfixE arg_12
arg_13
arg_14 -> memoized_15 arg_12 (memoized_1 arg_13 (memoized_15 arg_14 acc_3))
Language.Haskell.TH.Syntax.LamE arg_16
arg_17 -> memoized_18 arg_16 (memoized_1 arg_17 acc_3)
Language.Haskell.TH.Syntax.TupE arg_19 -> memoized_20 arg_19 acc_3
Language.Haskell.TH.Syntax.CondE arg_21
arg_22
arg_23 -> memoized_1 arg_21 (memoized_1 arg_22 (memoized_1 arg_23 acc_3))
Language.Haskell.TH.Syntax.LetE arg_24
arg_25 -> memoized_26 arg_24 (memoized_1 arg_25 acc_3)
Language.Haskell.TH.Syntax.CaseE arg_27
arg_28 -> memoized_1 arg_27 (memoized_29 arg_28 acc_3)
Language.Haskell.TH.Syntax.DoE arg_30 -> memoized_31 arg_30 acc_3
Language.Haskell.TH.Syntax.CompE arg_32 -> memoized_31 arg_32 acc_3
Language.Haskell.TH.Syntax.ArithSeqE arg_33 -> memoized_34 arg_33 acc_3
Language.Haskell.TH.Syntax.ListE arg_35 -> memoized_20 arg_35 acc_3
Language.Haskell.TH.Syntax.SigE arg_36
arg_37 -> memoized_1 arg_36 (memoized_38 arg_37 acc_3)
Language.Haskell.TH.Syntax.RecConE arg_39
arg_40 -> memoized_6 arg_39 (memoized_41 arg_40 acc_3)
Language.Haskell.TH.Syntax.RecUpdE arg_42
arg_43 -> memoized_1 arg_42 (memoized_41 arg_43 acc_3)) x_2)
memoized_41 = \x_44 acc_45 -> GHC.Base.const GHC.Base.id x_44 ((\_x_46 -> case _x_46 of
[] -> acc_45
(:) arg_47
arg_48 -> memoized_49 arg_47 (memoized_41 arg_48 acc_45)) x_44)
memoized_49 = \x_50 acc_51 -> GHC.Base.const GHC.Base.id x_50 ((\_x_52 -> case _x_52 of
(,) arg_53
arg_54 -> memoized_6 arg_53 (memoized_1 arg_54 acc_51)) x_50)
memoized_34 = \x_55 acc_56 -> GHC.Base.const GHC.Base.id x_55 ((\_x_57 -> case _x_57 of
Language.Haskell.TH.Syntax.FromR arg_58 -> memoized_1 arg_58 acc_56
Language.Haskell.TH.Syntax.FromThenR arg_59
arg_60 -> memoized_1 arg_59 (memoized_1 arg_60 acc_56)
Language.Haskell.TH.Syntax.FromToR arg_61
arg_62 -> memoized_1 arg_61 (memoized_1 arg_62 acc_56)
Language.Haskell.TH.Syntax.FromThenToR arg_63
arg_64
arg_65 -> memoized_1 arg_63 (memoized_1 arg_64 (memoized_1 arg_65 acc_56))) x_55)
memoized_29 = \x_66 acc_67 -> GHC.Base.const GHC.Base.id x_66 ((\_x_68 -> case _x_68 of
[] -> acc_67
(:) arg_69
arg_70 -> memoized_71 arg_69 (memoized_29 arg_70 acc_67)) x_66)
memoized_71 = \x_72 acc_73 -> GHC.Base.const GHC.Base.id x_72 ((\_x_74 -> case _x_74 of
Language.Haskell.TH.Syntax.Match arg_75
arg_76
arg_77 -> memoized_78 arg_75 (memoized_79 arg_76 (memoized_26 arg_77 acc_73))) x_72)
memoized_26 = \x_80 acc_81 -> GHC.Base.const GHC.Base.id x_80 ((\_x_82 -> case _x_82 of
[] -> acc_81
(:) arg_83
arg_84 -> memoized_85 arg_83 (memoized_26 arg_84 acc_81)) x_80)
memoized_85 = \x_86 acc_87 -> GHC.Base.const GHC.Base.id x_86 ((\_x_88 -> case _x_88 of
Language.Haskell.TH.Syntax.FunD arg_89
arg_90 -> memoized_6 arg_89 (memoized_91 arg_90 acc_87)
Language.Haskell.TH.Syntax.ValD arg_92
arg_93
arg_94 -> memoized_78 arg_92 (memoized_79 arg_93 (memoized_26 arg_94 acc_87))
Language.Haskell.TH.Syntax.DataD arg_95
arg_96
arg_97
arg_98
arg_99 -> memoized_100 arg_95 (memoized_6 arg_96 (memoized_101 arg_97 (memoized_102 arg_98 (memoized_103 arg_99 acc_87))))
Language.Haskell.TH.Syntax.NewtypeD arg_104
arg_105
arg_106
arg_107
arg_108 -> memoized_100 arg_104 (memoized_6 arg_105 (memoized_101 arg_106 (memoized_109 arg_107 (memoized_103 arg_108 acc_87))))
Language.Haskell.TH.Syntax.TySynD arg_110
arg_111
arg_112 -> memoized_6 arg_110 (memoized_101 arg_111 (memoized_38 arg_112 acc_87))
Language.Haskell.TH.Syntax.ClassD arg_113
arg_114
arg_115
arg_116
arg_117 -> memoized_100 arg_113 (memoized_6 arg_114 (memoized_101 arg_115 (memoized_118 arg_116 (memoized_26 arg_117 acc_87))))
Language.Haskell.TH.Syntax.InstanceD arg_119
arg_120
arg_121 -> memoized_100 arg_119 (memoized_38 arg_120 (memoized_26 arg_121 acc_87))
Language.Haskell.TH.Syntax.SigD arg_122
arg_123 -> memoized_6 arg_122 (memoized_38 arg_123 acc_87)
Language.Haskell.TH.Syntax.ForeignD arg_124 -> memoized_125 arg_124 acc_87
Language.Haskell.TH.Syntax.PragmaD arg_126 -> memoized_127 arg_126 acc_87
Language.Haskell.TH.Syntax.FamilyD arg_128
arg_129
arg_130
arg_131 -> memoized_132 arg_128 (memoized_6 arg_129 (memoized_101 arg_130 (memoized_133 arg_131 acc_87)))
Language.Haskell.TH.Syntax.DataInstD arg_134
arg_135
arg_136
arg_137
arg_138 -> memoized_100 arg_134 (memoized_6 arg_135 (memoized_139 arg_136 (memoized_102 arg_137 (memoized_103 arg_138 acc_87))))
Language.Haskell.TH.Syntax.NewtypeInstD arg_140
arg_141
arg_142
arg_143
arg_144 -> memoized_100 arg_140 (memoized_6 arg_141 (memoized_139 arg_142 (memoized_109 arg_143 (memoized_103 arg_144 acc_87))))
Language.Haskell.TH.Syntax.TySynInstD arg_145
arg_146
arg_147 -> memoized_6 arg_145 (memoized_139 arg_146 (memoized_38 arg_147 acc_87))) x_86)
memoized_139 = GHC.Base.const GHC.Base.id
memoized_133 = GHC.Base.const GHC.Base.id
memoized_132 = GHC.Base.const GHC.Base.id
memoized_127 = GHC.Base.const GHC.Base.id
memoized_125 = GHC.Base.const GHC.Base.id
memoized_118 = GHC.Base.const GHC.Base.id
memoized_109 = GHC.Base.const GHC.Base.id
memoized_103 = GHC.Base.const GHC.Base.id
memoized_102 = GHC.Base.const GHC.Base.id
memoized_101 = GHC.Base.const GHC.Base.id
memoized_100 = GHC.Base.const GHC.Base.id
memoized_91 = \x_148 acc_149 -> GHC.Base.const GHC.Base.id x_148 ((\_x_150 -> case _x_150 of
[] -> acc_149
(:) arg_151
arg_152 -> memoized_153 arg_151 (memoized_91 arg_152 acc_149)) x_148)
memoized_153 = \x_154 acc_155 -> GHC.Base.const GHC.Base.id x_154 ((\_x_156 -> case _x_156 of
Language.Haskell.TH.Syntax.Clause arg_157
arg_158
arg_159 -> memoized_18 arg_157 (memoized_79 arg_158 (memoized_26 arg_159 acc_155))) x_154)
memoized_79 = \x_160 acc_161 -> GHC.Base.const GHC.Base.id x_160 ((\_x_162 -> case _x_162 of
Language.Haskell.TH.Syntax.GuardedB arg_163 -> memoized_164 arg_163 acc_161
Language.Haskell.TH.Syntax.NormalB arg_165 -> memoized_1 arg_165 acc_161) x_160)
memoized_164 = \x_166 acc_167 -> GHC.Base.const GHC.Base.id x_166 ((\_x_168 -> case _x_168 of
[] -> acc_167
(:) arg_169
arg_170 -> memoized_171 arg_169 (memoized_164 arg_170 acc_167)) x_166)
memoized_171 = \x_172 acc_173 -> GHC.Base.const GHC.Base.id x_172 ((\_x_174 -> case _x_174 of
(,) arg_175
arg_176 -> memoized_177 arg_175 (memoized_1 arg_176 acc_173)) x_172)
memoized_177 = \x_178 acc_179 -> GHC.Base.const GHC.Base.id x_178 ((\_x_180 -> case _x_180 of
Language.Haskell.TH.Syntax.NormalG arg_181 -> memoized_1 arg_181 acc_179
Language.Haskell.TH.Syntax.PatG arg_182 -> memoized_31 arg_182 acc_179) x_178)
memoized_31 = \x_183 acc_184 -> GHC.Base.const GHC.Base.id x_183 ((\_x_185 -> case _x_185 of
[] -> acc_184
(:) arg_186
arg_187 -> memoized_188 arg_186 (memoized_31 arg_187 acc_184)) x_183)
memoized_188 = \x_189 acc_190 -> GHC.Base.const GHC.Base.id x_189 ((\_x_191 -> case _x_191 of
Language.Haskell.TH.Syntax.BindS arg_192
arg_193 -> memoized_78 arg_192 (memoized_1 arg_193 acc_190)
Language.Haskell.TH.Syntax.LetS arg_194 -> memoized_26 arg_194 acc_190
Language.Haskell.TH.Syntax.NoBindS arg_195 -> memoized_1 arg_195 acc_190
Language.Haskell.TH.Syntax.ParS arg_196 -> memoized_197 arg_196 acc_190) x_189)
memoized_197 = \x_198 acc_199 -> GHC.Base.const GHC.Base.id x_198 ((\_x_200 -> case _x_200 of
[] -> acc_199
(:) arg_201
arg_202 -> memoized_31 arg_201 (memoized_197 arg_202 acc_199)) x_198)
memoized_20 = \x_203 acc_204 -> GHC.Base.const GHC.Base.id x_203 ((\_x_205 -> case _x_205 of
[] -> acc_204
(:) arg_206
arg_207 -> memoized_1 arg_206 (memoized_20 arg_207 acc_204)) x_203)
memoized_18 = \x_208 acc_209 -> GHC.Base.const GHC.Base.id x_208 ((\_x_210 -> case _x_210 of
[] -> acc_209
(:) arg_211
arg_212 -> memoized_78 arg_211 (memoized_18 arg_212 acc_209)) x_208)
memoized_78 = \x_213 acc_214 -> GHC.Base.const GHC.Base.id x_213 ((\_x_215 -> case _x_215 of
Language.Haskell.TH.Syntax.LitP arg_216 -> memoized_9 arg_216 acc_214
Language.Haskell.TH.Syntax.VarP arg_217 -> memoized_6 arg_217 acc_214
Language.Haskell.TH.Syntax.TupP arg_218 -> memoized_18 arg_218 acc_214
Language.Haskell.TH.Syntax.ConP arg_219
arg_220 -> memoized_6 arg_219 (memoized_18 arg_220 acc_214)
Language.Haskell.TH.Syntax.InfixP arg_221
arg_222
arg_223 -> memoized_78 arg_221 (memoized_6 arg_222 (memoized_78 arg_223 acc_214))
Language.Haskell.TH.Syntax.TildeP arg_224 -> memoized_78 arg_224 acc_214
Language.Haskell.TH.Syntax.BangP arg_225 -> memoized_78 arg_225 acc_214
Language.Haskell.TH.Syntax.AsP arg_226
arg_227 -> memoized_6 arg_226 (memoized_78 arg_227 acc_214)
Language.Haskell.TH.Syntax.WildP -> acc_214
Language.Haskell.TH.Syntax.RecP arg_228
arg_229 -> memoized_6 arg_228 (memoized_230 arg_229 acc_214)
Language.Haskell.TH.Syntax.ListP arg_231 -> memoized_18 arg_231 acc_214
Language.Haskell.TH.Syntax.SigP arg_232
arg_233 -> memoized_78 arg_232 (memoized_38 arg_233 acc_214)
Language.Haskell.TH.Syntax.ViewP arg_234
arg_235 -> memoized_1 arg_234 (memoized_78 arg_235 acc_214)) x_213)
memoized_38 = GHC.Base.const GHC.Base.id
memoized_230 = \x_236 acc_237 -> GHC.Base.const GHC.Base.id x_236 ((\_x_238 -> case _x_238 of
[] -> acc_237
(:) arg_239
arg_240 -> memoized_241 arg_239 (memoized_230 arg_240 acc_237)) x_236)
memoized_241 = \x_242 acc_243 -> GHC.Base.const GHC.Base.id x_242 ((\_x_244 -> case _x_244 of
(,) arg_245
arg_246 -> memoized_6 arg_245 (memoized_78 arg_246 acc_243)) x_242)
memoized_15 = \x_247 acc_248 -> GHC.Base.const GHC.Base.id x_247 ((\_x_249 -> case _x_249 of
Data.Maybe.Nothing -> acc_248
Data.Maybe.Just arg_250 -> memoized_1 arg_250 acc_248) x_247)
memoized_9 = GHC.Base.const GHC.Base.id
memoized_6 = GHC.Base.const GHC.Base.id
in memoized_1) e_0 Set.empty