7 #include "HsVersions.h"
20 /* And-bind; just concat two decl blobs together */
21 abind : < gabindfst : binding;
22 gabindsnd : binding; >;
25 import : < gibindimod : stringId;
33 fixd : < gfixop : qid;
39 /* Class declaration */
40 cbind : < gcbindc : list;
45 /* Instance declaration */
46 ibind : < gibindi : ttype;
50 /* data type declaration */
51 tbind : < gtbindc : list; /* [context entries] */
52 gtbindid : ttype; /* applied tycon */
53 gtbindl : list; /* [constr] */
54 gtbindd : maybe; /* Maybe [deriving] */
57 /* newtype declaration */
58 ntbind : < gntbindc : list; /* [context entries] */
59 gntbindid : ttype; /* applied tycon */
60 gntbindcty : list; /* [constr] (only 1 constrnew) */
61 gntbindd : maybe; /* Maybe [deriving] */
64 /* type synonym declaration */
65 nbind : < gnbindid : ttype;
70 pbind : < gpbindl : VOID_STAR; /* The pattern, of type tree;
71 we can't say 'tree' because
72 that gives mutual recursion in the C */
73 gpbindr : VOID_STAR; /* The RHS, of type grhsb; same nonsense */
75 /* Function binding */
76 fbind : < gfbindm : list; /* List of matches */
77 /* The match encodes the LHS as well as RHS */
81 dbind : < gdbindts : list;
85 sbind : < gsbindids : list;
89 /* FFI declarations */
90 fobind : < gfobind_id : qid;
96 gfobind_line : long; >;
99 /* user-specified pragmas:XXXX */
101 vspec_uprag : < gvspec_id : qid;
103 gvspec_line : long; >;
105 vspec_ty_and_id : < gvspec_ty : ttype;
106 gvspec_tyid : maybe; /* nil or singleton */ >;
108 ispec_uprag : < gispec_clas : qid;
110 gispec_line : long; >;
112 inline_uprag: < ginline_id : qid;
113 ginline_line : long; >;
115 noinline_uprag: < gnoinline_id : qid;
116 gnoinline_line : long; >;
118 magicuf_uprag:< gmagicuf_id : qid;
119 gmagicuf_str : stringId;
120 gmagicuf_line : long; >;
122 dspec_uprag : < gdspec_id : qid;
124 gdspec_line : long; >;