6 import Ubiq -- debugging consistency check
11 import U_qid ( U_qid ) -- for interfaces only
15 /* binders: simple Id, plus a type */
16 cobinder : < gcobinder_v : unkId;
17 gcobinder_ty : ttype; >;
20 colit : < gcolit : literal; >;
21 colocal : < gcolocal_v : coresyn; >;
23 cononrec : <gcononrec_b : coresyn;
24 gcononrec_rhs : coresyn; >;
25 corec : <gcorec : list; >;
26 corec_pair: <gcorec_b : coresyn;
27 gcorec_rhs : coresyn; >;
29 covar : < gcovar : coresyn; >;
30 coliteral :< gcoliteral : literal; >;
31 cocon : < gcocon_con : coresyn;
33 gcocon_args : list; >;
34 coprim : < gcoprim_op : coresyn; /* primop or something */
36 gcoprim_args: list; >;
37 colam : < gcolam_vars : list;
38 gcolam_body : coresyn; >;
39 cotylam : < gcotylam_tvs: list;
40 gcotylam_body : coresyn; >;
41 coapp : < gcoapp_fun : coresyn;
42 gcoapp_args : list; >;
43 cotyapp : < gcotyapp_e : coresyn;
44 gcotyapp_t : ttype; >;
45 cocase : < gcocase_s : coresyn;
46 gcocase_alts : coresyn; >;
47 colet : < gcolet_bind : coresyn;
48 gcolet_body : coresyn; >;
49 coscc : < gcoscc_scc : coresyn;
50 gcoscc_body : coresyn; >;
52 coalg_alts : < gcoalg_alts : list;
53 gcoalg_deflt : coresyn; >;
54 coalg_alt : < gcoalg_con : coresyn;
56 gcoalg_rhs : coresyn; >;
58 coprim_alts : < gcoprim_alts : list;
59 gcoprim_deflt : coresyn; >;
60 coprim_alt : < gcoprim_lit : literal;
61 gcoprim_rhs : coresyn; >;
64 cobinddeflt : < gcobinddeflt_v : coresyn;
65 gcobinddeflt_rhs : coresyn; >;
67 co_primop : < gco_primop : stringId;>;
68 co_ccall : < gco_ccall : stringId;
69 gco_ccall_may_gc : long;
70 gco_ccall_arg_tys : list;
71 gco_ccall_res_ty : ttype; >;
72 co_casm : < gco_casm : literal;
73 gco_casm_may_gc : long;
74 gco_casm_arg_tys : list;
75 gco_casm_res_ty : ttype; >;
77 /* various flavours of cost-centres */
78 co_preludedictscc : < gco_preludedictscc_dupd : coresyn; >;
79 co_alldictscc : < gco_alldictscc_m : hstring;
80 gco_alldictscc_g : hstring;
81 gco_alldictscc_dupd : coresyn; >;
82 co_usercc : < gco_usercc_n : hstring;
83 gco_usercc_m : hstring;
84 gco_usercc_g : hstring;
85 gco_usercc_dupd : coresyn;
86 gco_usercc_cafd : coresyn; >;
87 co_autocc : < gco_autocc_i : coresyn;
88 gco_autocc_m : hstring;
89 gco_autocc_g : hstring;
90 gco_autocc_dupd : coresyn;
91 gco_autocc_cafd : coresyn; >;
92 co_dictcc : < gco_dictcc_i : coresyn;
93 gco_dictcc_m : hstring;
94 gco_dictcc_g : hstring;
95 gco_dictcc_dupd : coresyn;
96 gco_dictcc_cafd : coresyn; >;
100 co_scc_nondupd : < >;
103 /* various flavours of Ids */
104 co_id : < gco_id : stringId; >;
105 co_orig_id : < gco_orig_id_m : stringId;
106 gco_orig_id_n : stringId; >;
107 co_sdselid : < gco_sdselid_c : unkId;
108 gco_sdselid_sc : unkId; >;
109 co_classopid : < gco_classopid_c : unkId;
110 gco_classopid_o : unkId; >;
111 co_defmid : < gco_defmid_c : unkId;
112 gco_defmid_op : unkId; >;
113 co_dfunid : < gco_dfunid_c : unkId;
114 gco_dfunid_ty : ttype; >;
115 co_constmid : < gco_constmid_c : unkId;
116 gco_constmid_op : unkId;
117 gco_constmid_ty : ttype; >;
118 co_specid : < gco_specid_un : coresyn;
119 gco_specid_tys : list; >;
120 co_wrkrid : < gco_wrkrid_un : coresyn; >;