@@ -0,0 +1,385 @@
1+module Idris.DeepSeq where
2+
3+import Core.TT
4+import Idris.AbsSyntax
5+
6+import Control.DeepSeq
7+
8+-- All generated by 'derive'
9+
10+instance NFData Raw where
11+ rnf (Var x1) = rnf x1 `seq` ()
12+ rnf (RBind x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
13+ rnf (RApp x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
14+ rnf RType = ()
15+ rnf (RForce x1) = rnf x1 `seq` ()
16+ rnf (RConstant x1) = rnf x1 `seq` ()
17+
18+instance NFData FC where
19+ rnf (FC x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
20+
21+instance NFData Name where
22+ rnf (UN x1) = rnf x1 `seq` ()
23+ rnf (NS x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
24+ rnf (MN x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
25+ rnf NErased = ()
26+ rnf (SN x1) = rnf x1 `seq` ()
27+
28+instance NFData SpecialName where
29+ rnf (WhereN x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
30+ rnf (InstanceN x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
31+ rnf (ParentN x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
32+ rnf (MethodN x1) = rnf x1 `seq` ()
33+ rnf (CaseN x1) = rnf x1 `seq` ()
34+
35+instance NFData Const where
36+ rnf (I x1) = rnf x1 `seq` ()
37+ rnf (BI x1) = rnf x1 `seq` ()
38+ rnf (Fl x1) = rnf x1 `seq` ()
39+ rnf (Ch x1) = rnf x1 `seq` ()
40+ rnf (Str x1) = rnf x1 `seq` ()
41+ rnf (B8 x1) = rnf x1 `seq` ()
42+ rnf (B16 x1) = rnf x1 `seq` ()
43+ rnf (B32 x1) = rnf x1 `seq` ()
44+ rnf (B64 x1) = rnf x1 `seq` ()
45+ rnf (B8V x1) = rnf x1 `seq` ()
46+ rnf (B16V x1) = rnf x1 `seq` ()
47+ rnf (B32V x1) = rnf x1 `seq` ()
48+ rnf (B64V x1) = rnf x1 `seq` ()
49+ rnf (AType x1) = rnf x1 `seq` ()
50+ rnf StrType = ()
51+ rnf PtrType = ()
52+ rnf VoidType = ()
53+ rnf Forgot = ()
54+
55+instance NFData IntTy where
56+ rnf (ITFixed x1) = rnf x1 `seq` ()
57+ rnf ITNative = ()
58+ rnf ITBig = ()
59+ rnf ITChar = ()
60+ rnf (ITVec x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
61+
62+
63+instance NFData NativeTy where
64+ rnf IT8 = ()
65+ rnf IT16 = ()
66+ rnf IT32 = ()
67+ rnf IT64 = ()
68+
69+
70+instance NFData ArithTy where
71+ rnf (ATInt x1) = rnf x1 `seq` ()
72+ rnf ATFloat = ()
73+
74+instance NFData Err where
75+ rnf (Msg x1) = rnf x1 `seq` ()
76+ rnf (InternalMsg x1) = rnf x1 `seq` ()
77+ rnf (CantUnify x1 x2 x3 x4 x5 x6)
78+ = rnf x1 `seq`
79+ rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` rnf x5 `seq` rnf x6 `seq` ()
80+ rnf (InfiniteUnify x1 x2 x3)
81+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
82+ rnf (CantConvert x1 x2 x3)
83+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
84+ rnf (UnifyScope x1 x2 x3 x4)
85+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
86+ rnf (CantInferType x1) = rnf x1 `seq` ()
87+ rnf (NonFunctionType x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
88+ rnf (CantIntroduce x1) = rnf x1 `seq` ()
89+ rnf (NoSuchVariable x1) = rnf x1 `seq` ()
90+ rnf (NoTypeDecl x1) = rnf x1 `seq` ()
91+ rnf (NotInjective x1 x2 x3)
92+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
93+ rnf (CantResolve x1) = rnf x1 `seq` ()
94+ rnf (CantResolveAlts x1) = rnf x1 `seq` ()
95+ rnf (IncompleteTerm x1) = rnf x1 `seq` ()
96+ rnf UniverseError = ()
97+ rnf ProgramLineComment = ()
98+ rnf (Inaccessible x1) = rnf x1 `seq` ()
99+ rnf (NonCollapsiblePostulate x1) = rnf x1 `seq` ()
100+ rnf (AlreadyDefined x1) = rnf x1 `seq` ()
101+ rnf (ProofSearchFail x1) = rnf x1 `seq` ()
102+ rnf (NoRewriting x1) = rnf x1 `seq` ()
103+ rnf (At x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
104+ rnf (Elaborating x1 x2 x3)
105+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
106+ rnf (ProviderError x1) = rnf x1 `seq` ()
107+ rnf (LoadingFailed x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
108+
109+instance (NFData b) => NFData (Binder b) where
110+ rnf (Lam x1) = rnf x1 `seq` ()
111+ rnf (Pi x1) = rnf x1 `seq` ()
112+ rnf (Let x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
113+ rnf (NLet x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
114+ rnf (Hole x1) = rnf x1 `seq` ()
115+ rnf (GHole x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
116+ rnf (Guess x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
117+ rnf (PVar x1) = rnf x1 `seq` ()
118+ rnf (PVTy x1) = rnf x1 `seq` ()
119+
120+instance NFData UExp where
121+ rnf (UVar x1) = rnf x1 `seq` ()
122+ rnf (UVal x1) = rnf x1 `seq` ()
123+
124+instance NFData NameType where
125+ rnf Bound = ()
126+ rnf Ref = ()
127+ rnf (DCon x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
128+ rnf (TCon x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
129+
130+instance (NFData n) => NFData (TT n) where
131+ rnf (P x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
132+ rnf (V x1) = rnf x1 `seq` ()
133+ rnf (Bind x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
134+ rnf (App x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
135+ rnf (Constant x1) = rnf x1 `seq` ()
136+ rnf (Proj x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
137+ rnf Erased = ()
138+ rnf Impossible = ()
139+ rnf (TType x1) = rnf x1 `seq` ()
140+
141+instance NFData SizeChange where
142+ rnf Smaller = ()
143+ rnf Same = ()
144+ rnf Bigger = ()
145+ rnf Unknown = ()
146+
147+instance NFData CGInfo where
148+ rnf (CGInfo x1 x2 x3 x4 x5)
149+ = rnf x1 `seq`
150+ rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` rnf x5 `seq` ()
151+
152+instance NFData Fixity where
153+ rnf (Infixl x1) = rnf x1 `seq` ()
154+ rnf (Infixr x1) = rnf x1 `seq` ()
155+ rnf (InfixN x1) = rnf x1 `seq` ()
156+ rnf (PrefixN x1) = rnf x1 `seq` ()
157+
158+instance NFData FixDecl where
159+ rnf (Fix x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
160+
161+instance NFData Static where
162+ rnf Static = ()
163+ rnf Dynamic = ()
164+
165+instance NFData Plicity where
166+ rnf (Imp x1 x2 x3 x4)
167+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
168+ rnf (Exp x1 x2 x3 x4)
169+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
170+ rnf (Constraint x1 x2 x3)
171+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
172+ rnf (TacImp x1 x2 x3 x4)
173+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
174+
175+instance NFData FnOpt where
176+ rnf Inlinable = ()
177+ rnf TotalFn = ()
178+ rnf PartialFn = ()
179+ rnf Coinductive = ()
180+ rnf AssertTotal = ()
181+ rnf Dictionary = ()
182+ rnf Implicit = ()
183+ rnf (CExport x1) = rnf x1 `seq` ()
184+ rnf Reflection = ()
185+ rnf (Specialise x1) = rnf x1 `seq` ()
186+
187+instance (NFData t) => NFData (PDecl' t) where
188+ rnf (PFix x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
189+ rnf (PTy x1 x2 x3 x4 x5 x6)
190+ = rnf x1 `seq`
191+ rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` rnf x5 `seq` rnf x6 `seq` ()
192+ rnf (PPostulate x1 x2 x3 x4 x5 x6)
193+ = rnf x1 `seq`
194+ rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` rnf x5 `seq` rnf x6 `seq` ()
195+ rnf (PClauses x1 x2 x3 x4)
196+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
197+ rnf (PCAF x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
198+ rnf (PData x1 x2 x3 x4 x5)
199+ = rnf x1 `seq`
200+ rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` rnf x5 `seq` ()
201+ rnf (PParams x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
202+ rnf (PNamespace x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
203+ rnf (PRecord x1 x2 x3 x4 x5 x6 x7 x8)
204+ = rnf x1 `seq`
205+ rnf x2 `seq`
206+ rnf x3 `seq`
207+ rnf x4 `seq` rnf x5 `seq` rnf x6 `seq` rnf x7 `seq` rnf x8 `seq` ()
208+ rnf (PClass x1 x2 x3 x4 x5 x6 x7)
209+ = rnf x1 `seq`
210+ rnf x2 `seq`
211+ rnf x3 `seq` rnf x4 `seq` rnf x5 `seq` rnf x6 `seq` rnf x7 `seq` ()
212+ rnf (PInstance x1 x2 x3 x4 x5 x6 x7 x8)
213+ = rnf x1 `seq`
214+ rnf x2 `seq`
215+ rnf x3 `seq`
216+ rnf x4 `seq` rnf x5 `seq` rnf x6 `seq` rnf x7 `seq` rnf x8 `seq` ()
217+ rnf (PDSL x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
218+ rnf (PSyntax x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
219+ rnf (PMutual x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
220+ rnf (PDirective x1) = ()
221+ rnf (PProvider x1 x2 x3 x4 x5)
222+ = rnf x1 `seq`
223+ rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` rnf x5 `seq` ()
224+ rnf (PTransform x1 x2 x3 x4)
225+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
226+
227+instance (NFData t) => NFData (PClause' t) where
228+ rnf (PClause x1 x2 x3 x4 x5 x6)
229+ = rnf x1 `seq`
230+ rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` rnf x5 `seq` rnf x6 `seq` ()
231+ rnf (PWith x1 x2 x3 x4 x5 x6)
232+ = rnf x1 `seq`
233+ rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` rnf x5 `seq` rnf x6 `seq` ()
234+ rnf (PClauseR x1 x2 x3 x4)
235+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
236+ rnf (PWithR x1 x2 x3 x4)
237+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
238+
239+instance (NFData t) => NFData (PData' t) where
240+ rnf (PDatadecl x1 x2 x3)
241+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
242+ rnf (PLaterdecl x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
243+
244+instance NFData PTerm where
245+ rnf (PQuote x1) = rnf x1 `seq` ()
246+ rnf (PRef x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
247+ rnf (PInferRef x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
248+ rnf (PPatvar x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
249+ rnf (PLam x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
250+ rnf (PPi x1 x2 x3 x4)
251+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
252+ rnf (PLet x1 x2 x3 x4)
253+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
254+ rnf (PTyped x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
255+ rnf (PApp x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
256+ rnf (PAppBind x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
257+ rnf (PMatchApp x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
258+ rnf (PCase x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
259+ rnf (PTrue x1) = rnf x1 `seq` ()
260+ rnf (PFalse x1) = rnf x1 `seq` ()
261+ rnf (PRefl x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
262+ rnf (PResolveTC x1) = rnf x1 `seq` ()
263+ rnf (PEq x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
264+ rnf (PRewrite x1 x2 x3 x4)
265+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
266+ rnf (PPair x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
267+ rnf (PDPair x1 x2 x3 x4)
268+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
269+ rnf (PAlternative x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
270+ rnf (PHidden x1) = rnf x1 `seq` ()
271+ rnf PType = ()
272+ rnf (PGoal x1 x2 x3 x4)
273+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
274+ rnf (PConstant x1) = rnf x1 `seq` ()
275+ rnf Placeholder = ()
276+ rnf (PDoBlock x1) = rnf x1 `seq` ()
277+ rnf (PIdiom x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
278+ rnf (PReturn x1) = rnf x1 `seq` ()
279+ rnf (PMetavar x1) = rnf x1 `seq` ()
280+ rnf (PProof x1) = rnf x1 `seq` ()
281+ rnf (PTactics x1) = rnf x1 `seq` ()
282+ rnf (PElabError x1) = rnf x1 `seq` ()
283+ rnf PImpossible = ()
284+ rnf (PCoerced x1) = rnf x1 `seq` ()
285+ rnf (PUnifyLog x1) = rnf x1 `seq` ()
286+ rnf (PNoImplicits x1) = rnf x1 `seq` ()
287+
288+instance (NFData t) => NFData (PTactic' t) where
289+ rnf (Intro x1) = rnf x1 `seq` ()
290+ rnf Intros = ()
291+ rnf (Focus x1) = rnf x1 `seq` ()
292+ rnf (Refine x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
293+ rnf (Rewrite x1) = rnf x1 `seq` ()
294+ rnf (Equiv x1) = rnf x1 `seq` ()
295+ rnf (MatchRefine x1) = rnf x1 `seq` ()
296+ rnf (LetTac x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
297+ rnf (LetTacTy x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
298+ rnf (Exact x1) = rnf x1 `seq` ()
299+ rnf Compute = ()
300+ rnf Trivial = ()
301+ rnf (ProofSearch x1 x2 x3)
302+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
303+ rnf Solve = ()
304+ rnf Attack = ()
305+ rnf ProofState = ()
306+ rnf ProofTerm = ()
307+ rnf Undo = ()
308+ rnf (Try x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
309+ rnf (TSeq x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
310+ rnf (ApplyTactic x1) = rnf x1 `seq` ()
311+ rnf (Reflect x1) = rnf x1 `seq` ()
312+ rnf (Fill x1) = rnf x1 `seq` ()
313+ rnf (GoalType x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
314+ rnf Qed = ()
315+ rnf Abandon = ()
316+
317+instance (NFData t) => NFData (PDo' t) where
318+ rnf (DoExp x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
319+ rnf (DoBind x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
320+ rnf (DoBindP x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
321+ rnf (DoLet x1 x2 x3 x4)
322+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
323+ rnf (DoLetP x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
324+
325+instance (NFData t) => NFData (PArg' t) where
326+ rnf (PImp x1 x2 x3 x4 x5 x6)
327+ = rnf x1 `seq`
328+ rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` rnf x5 `seq` rnf x6 `seq` ()
329+ rnf (PExp x1 x2 x3 x4)
330+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
331+ rnf (PConstraint x1 x2 x3 x4)
332+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
333+ rnf (PTacImplicit x1 x2 x3 x4 x5 x6)
334+ = rnf x1 `seq`
335+ rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` rnf x5 `seq` rnf x6 `seq` ()
336+
337+instance NFData ClassInfo where
338+ rnf (CI x1 x2 x3 x4 x5)
339+ = rnf x1 `seq`
340+ rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` rnf x5 `seq` ()
341+
342+instance NFData OptInfo where
343+ rnf (Optimise x1 x2 x3 x4)
344+ = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` ()
345+
346+instance NFData TypeInfo where
347+ rnf (TI x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
348+
349+instance (NFData t) => NFData (DSL' t) where
350+ rnf (DSL x1 x2 x3 x4 x5 x6 x7 x8 x9)
351+ = rnf x1 `seq`
352+ rnf x2 `seq`
353+ rnf x3 `seq`
354+ rnf x4 `seq`
355+ rnf x5 `seq` rnf x6 `seq` rnf x7 `seq` rnf x8 `seq` rnf x9 `seq` ()
356+
357+instance NFData SynContext where
358+ rnf PatternSyntax = ()
359+ rnf TermSyntax = ()
360+ rnf AnySyntax = ()
361+
362+instance NFData Syntax where
363+ rnf (Rule x1 x2 x3) = rnf x1 `seq` rnf x2 `seq` rnf x3 `seq` ()
364+
365+instance NFData SSymbol where
366+ rnf (Keyword x1) = rnf x1 `seq` ()
367+ rnf (Symbol x1) = rnf x1 `seq` ()
368+ rnf (Binding x1) = rnf x1 `seq` ()
369+ rnf (Expr x1) = rnf x1 `seq` ()
370+ rnf (SimpleExpr x1) = rnf x1 `seq` ()
371+
372+instance NFData Using where
373+ rnf (UImplicit x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
374+ rnf (UConstraint x1 x2) = rnf x1 `seq` rnf x2 `seq` ()
375+
376+
377+instance NFData SyntaxInfo where
378+ rnf (Syn x1 x2 x3 x4 x5 x6 x7 x8)
379+ = rnf x1 `seq`
380+ rnf x2 `seq`
381+ rnf x3 `seq`
382+ rnf x4 `seq` rnf x5 `seq` rnf x6 `seq` rnf x7 `seq` rnf x8 `seq` ()
383+
384+
385+