10 data U_coresyn = U_cobinder U_unkId U_ttype | U_colit U_literal | U_colocal U_coresyn | U_cononrec U_coresyn U_coresyn | U_corec U_list | U_corec_pair U_coresyn U_coresyn | U_covar U_coresyn | U_coliteral U_literal | U_cocon U_coresyn U_list U_list | U_coprim U_coresyn U_list U_list | U_colam U_list U_coresyn | U_cotylam U_list U_coresyn | U_coapp U_coresyn U_list | U_cotyapp U_coresyn U_ttype | U_cocase U_coresyn U_coresyn | U_colet U_coresyn U_coresyn | U_coscc U_coresyn U_coresyn | U_coalg_alts U_list U_coresyn | U_coalg_alt U_coresyn U_list U_coresyn | U_coprim_alts U_list U_coresyn | U_coprim_alt U_literal U_coresyn | U_conodeflt | U_cobinddeflt U_coresyn U_coresyn | U_co_primop U_stringId | U_co_ccall U_stringId U_long U_list U_ttype | U_co_casm U_literal U_long U_list U_ttype | U_co_preludedictscc U_coresyn | U_co_alldictscc U_hstring U_hstring U_coresyn | U_co_usercc U_hstring U_hstring U_hstring U_coresyn U_coresyn | U_co_autocc U_coresyn U_hstring U_hstring U_coresyn U_coresyn | U_co_dictcc U_coresyn U_hstring U_hstring U_coresyn U_coresyn | U_co_scc_noncaf | U_co_scc_caf | U_co_scc_nondupd | U_co_scc_dupd | U_co_id U_stringId | U_co_orig_id U_stringId U_stringId | U_co_sdselid U_unkId U_unkId | U_co_classopid U_unkId U_unkId | U_co_defmid U_unkId U_unkId | U_co_dfunid U_unkId U_ttype | U_co_constmid U_unkId U_unkId U_ttype | U_co_specid U_coresyn U_list | U_co_wrkrid U_coresyn
12 rdU_coresyn :: _Addr -> UgnM U_coresyn
14 = ioToUgnM (_ccall_ tcoresyn t) `thenUgn` \ tag@(I# _) ->
15 if tag == ``cobinder'' then
16 ioToUgnM (_ccall_ gcobinder_v t) `thenUgn` \ x_gcobinder_v ->
17 rdU_unkId x_gcobinder_v `thenUgn` \ y_gcobinder_v ->
18 ioToUgnM (_ccall_ gcobinder_ty t) `thenUgn` \ x_gcobinder_ty ->
19 rdU_ttype x_gcobinder_ty `thenUgn` \ y_gcobinder_ty ->
20 returnUgn (U_cobinder y_gcobinder_v y_gcobinder_ty)
21 else if tag == ``colit'' then
22 ioToUgnM (_ccall_ gcolit t) `thenUgn` \ x_gcolit ->
23 rdU_literal x_gcolit `thenUgn` \ y_gcolit ->
24 returnUgn (U_colit y_gcolit)
25 else if tag == ``colocal'' then
26 ioToUgnM (_ccall_ gcolocal_v t) `thenUgn` \ x_gcolocal_v ->
27 rdU_coresyn x_gcolocal_v `thenUgn` \ y_gcolocal_v ->
28 returnUgn (U_colocal y_gcolocal_v)
29 else if tag == ``cononrec'' then
30 ioToUgnM (_ccall_ gcononrec_b t) `thenUgn` \ x_gcononrec_b ->
31 rdU_coresyn x_gcononrec_b `thenUgn` \ y_gcononrec_b ->
32 ioToUgnM (_ccall_ gcononrec_rhs t) `thenUgn` \ x_gcononrec_rhs ->
33 rdU_coresyn x_gcononrec_rhs `thenUgn` \ y_gcononrec_rhs ->
34 returnUgn (U_cononrec y_gcononrec_b y_gcononrec_rhs)
35 else if tag == ``corec'' then
36 ioToUgnM (_ccall_ gcorec t) `thenUgn` \ x_gcorec ->
37 rdU_list x_gcorec `thenUgn` \ y_gcorec ->
38 returnUgn (U_corec y_gcorec)
39 else if tag == ``corec_pair'' then
40 ioToUgnM (_ccall_ gcorec_b t) `thenUgn` \ x_gcorec_b ->
41 rdU_coresyn x_gcorec_b `thenUgn` \ y_gcorec_b ->
42 ioToUgnM (_ccall_ gcorec_rhs t) `thenUgn` \ x_gcorec_rhs ->
43 rdU_coresyn x_gcorec_rhs `thenUgn` \ y_gcorec_rhs ->
44 returnUgn (U_corec_pair y_gcorec_b y_gcorec_rhs)
45 else if tag == ``covar'' then
46 ioToUgnM (_ccall_ gcovar t) `thenUgn` \ x_gcovar ->
47 rdU_coresyn x_gcovar `thenUgn` \ y_gcovar ->
48 returnUgn (U_covar y_gcovar)
49 else if tag == ``coliteral'' then
50 ioToUgnM (_ccall_ gcoliteral t) `thenUgn` \ x_gcoliteral ->
51 rdU_literal x_gcoliteral `thenUgn` \ y_gcoliteral ->
52 returnUgn (U_coliteral y_gcoliteral)
53 else if tag == ``cocon'' then
54 ioToUgnM (_ccall_ gcocon_con t) `thenUgn` \ x_gcocon_con ->
55 rdU_coresyn x_gcocon_con `thenUgn` \ y_gcocon_con ->
56 ioToUgnM (_ccall_ gcocon_tys t) `thenUgn` \ x_gcocon_tys ->
57 rdU_list x_gcocon_tys `thenUgn` \ y_gcocon_tys ->
58 ioToUgnM (_ccall_ gcocon_args t) `thenUgn` \ x_gcocon_args ->
59 rdU_list x_gcocon_args `thenUgn` \ y_gcocon_args ->
60 returnUgn (U_cocon y_gcocon_con y_gcocon_tys y_gcocon_args)
61 else if tag == ``coprim'' then
62 ioToUgnM (_ccall_ gcoprim_op t) `thenUgn` \ x_gcoprim_op ->
63 rdU_coresyn x_gcoprim_op `thenUgn` \ y_gcoprim_op ->
64 ioToUgnM (_ccall_ gcoprim_tys t) `thenUgn` \ x_gcoprim_tys ->
65 rdU_list x_gcoprim_tys `thenUgn` \ y_gcoprim_tys ->
66 ioToUgnM (_ccall_ gcoprim_args t) `thenUgn` \ x_gcoprim_args ->
67 rdU_list x_gcoprim_args `thenUgn` \ y_gcoprim_args ->
68 returnUgn (U_coprim y_gcoprim_op y_gcoprim_tys y_gcoprim_args)
69 else if tag == ``colam'' then
70 ioToUgnM (_ccall_ gcolam_vars t) `thenUgn` \ x_gcolam_vars ->
71 rdU_list x_gcolam_vars `thenUgn` \ y_gcolam_vars ->
72 ioToUgnM (_ccall_ gcolam_body t) `thenUgn` \ x_gcolam_body ->
73 rdU_coresyn x_gcolam_body `thenUgn` \ y_gcolam_body ->
74 returnUgn (U_colam y_gcolam_vars y_gcolam_body)
75 else if tag == ``cotylam'' then
76 ioToUgnM (_ccall_ gcotylam_tvs t) `thenUgn` \ x_gcotylam_tvs ->
77 rdU_list x_gcotylam_tvs `thenUgn` \ y_gcotylam_tvs ->
78 ioToUgnM (_ccall_ gcotylam_body t) `thenUgn` \ x_gcotylam_body ->
79 rdU_coresyn x_gcotylam_body `thenUgn` \ y_gcotylam_body ->
80 returnUgn (U_cotylam y_gcotylam_tvs y_gcotylam_body)
81 else if tag == ``coapp'' then
82 ioToUgnM (_ccall_ gcoapp_fun t) `thenUgn` \ x_gcoapp_fun ->
83 rdU_coresyn x_gcoapp_fun `thenUgn` \ y_gcoapp_fun ->
84 ioToUgnM (_ccall_ gcoapp_args t) `thenUgn` \ x_gcoapp_args ->
85 rdU_list x_gcoapp_args `thenUgn` \ y_gcoapp_args ->
86 returnUgn (U_coapp y_gcoapp_fun y_gcoapp_args)
87 else if tag == ``cotyapp'' then
88 ioToUgnM (_ccall_ gcotyapp_e t) `thenUgn` \ x_gcotyapp_e ->
89 rdU_coresyn x_gcotyapp_e `thenUgn` \ y_gcotyapp_e ->
90 ioToUgnM (_ccall_ gcotyapp_t t) `thenUgn` \ x_gcotyapp_t ->
91 rdU_ttype x_gcotyapp_t `thenUgn` \ y_gcotyapp_t ->
92 returnUgn (U_cotyapp y_gcotyapp_e y_gcotyapp_t)
93 else if tag == ``cocase'' then
94 ioToUgnM (_ccall_ gcocase_s t) `thenUgn` \ x_gcocase_s ->
95 rdU_coresyn x_gcocase_s `thenUgn` \ y_gcocase_s ->
96 ioToUgnM (_ccall_ gcocase_alts t) `thenUgn` \ x_gcocase_alts ->
97 rdU_coresyn x_gcocase_alts `thenUgn` \ y_gcocase_alts ->
98 returnUgn (U_cocase y_gcocase_s y_gcocase_alts)
99 else if tag == ``colet'' then
100 ioToUgnM (_ccall_ gcolet_bind t) `thenUgn` \ x_gcolet_bind ->
101 rdU_coresyn x_gcolet_bind `thenUgn` \ y_gcolet_bind ->
102 ioToUgnM (_ccall_ gcolet_body t) `thenUgn` \ x_gcolet_body ->
103 rdU_coresyn x_gcolet_body `thenUgn` \ y_gcolet_body ->
104 returnUgn (U_colet y_gcolet_bind y_gcolet_body)
105 else if tag == ``coscc'' then
106 ioToUgnM (_ccall_ gcoscc_scc t) `thenUgn` \ x_gcoscc_scc ->
107 rdU_coresyn x_gcoscc_scc `thenUgn` \ y_gcoscc_scc ->
108 ioToUgnM (_ccall_ gcoscc_body t) `thenUgn` \ x_gcoscc_body ->
109 rdU_coresyn x_gcoscc_body `thenUgn` \ y_gcoscc_body ->
110 returnUgn (U_coscc y_gcoscc_scc y_gcoscc_body)
111 else if tag == ``coalg_alts'' then
112 ioToUgnM (_ccall_ gcoalg_alts t) `thenUgn` \ x_gcoalg_alts ->
113 rdU_list x_gcoalg_alts `thenUgn` \ y_gcoalg_alts ->
114 ioToUgnM (_ccall_ gcoalg_deflt t) `thenUgn` \ x_gcoalg_deflt ->
115 rdU_coresyn x_gcoalg_deflt `thenUgn` \ y_gcoalg_deflt ->
116 returnUgn (U_coalg_alts y_gcoalg_alts y_gcoalg_deflt)
117 else if tag == ``coalg_alt'' then
118 ioToUgnM (_ccall_ gcoalg_con t) `thenUgn` \ x_gcoalg_con ->
119 rdU_coresyn x_gcoalg_con `thenUgn` \ y_gcoalg_con ->
120 ioToUgnM (_ccall_ gcoalg_bs t) `thenUgn` \ x_gcoalg_bs ->
121 rdU_list x_gcoalg_bs `thenUgn` \ y_gcoalg_bs ->
122 ioToUgnM (_ccall_ gcoalg_rhs t) `thenUgn` \ x_gcoalg_rhs ->
123 rdU_coresyn x_gcoalg_rhs `thenUgn` \ y_gcoalg_rhs ->
124 returnUgn (U_coalg_alt y_gcoalg_con y_gcoalg_bs y_gcoalg_rhs)
125 else if tag == ``coprim_alts'' then
126 ioToUgnM (_ccall_ gcoprim_alts t) `thenUgn` \ x_gcoprim_alts ->
127 rdU_list x_gcoprim_alts `thenUgn` \ y_gcoprim_alts ->
128 ioToUgnM (_ccall_ gcoprim_deflt t) `thenUgn` \ x_gcoprim_deflt ->
129 rdU_coresyn x_gcoprim_deflt `thenUgn` \ y_gcoprim_deflt ->
130 returnUgn (U_coprim_alts y_gcoprim_alts y_gcoprim_deflt)
131 else if tag == ``coprim_alt'' then
132 ioToUgnM (_ccall_ gcoprim_lit t) `thenUgn` \ x_gcoprim_lit ->
133 rdU_literal x_gcoprim_lit `thenUgn` \ y_gcoprim_lit ->
134 ioToUgnM (_ccall_ gcoprim_rhs t) `thenUgn` \ x_gcoprim_rhs ->
135 rdU_coresyn x_gcoprim_rhs `thenUgn` \ y_gcoprim_rhs ->
136 returnUgn (U_coprim_alt y_gcoprim_lit y_gcoprim_rhs)
137 else if tag == ``conodeflt'' then
138 returnUgn (U_conodeflt )
139 else if tag == ``cobinddeflt'' then
140 ioToUgnM (_ccall_ gcobinddeflt_v t) `thenUgn` \ x_gcobinddeflt_v ->
141 rdU_coresyn x_gcobinddeflt_v `thenUgn` \ y_gcobinddeflt_v ->
142 ioToUgnM (_ccall_ gcobinddeflt_rhs t) `thenUgn` \ x_gcobinddeflt_rhs ->
143 rdU_coresyn x_gcobinddeflt_rhs `thenUgn` \ y_gcobinddeflt_rhs ->
144 returnUgn (U_cobinddeflt y_gcobinddeflt_v y_gcobinddeflt_rhs)
145 else if tag == ``co_primop'' then
146 ioToUgnM (_ccall_ gco_primop t) `thenUgn` \ x_gco_primop ->
147 rdU_stringId x_gco_primop `thenUgn` \ y_gco_primop ->
148 returnUgn (U_co_primop y_gco_primop)
149 else if tag == ``co_ccall'' then
150 ioToUgnM (_ccall_ gco_ccall t) `thenUgn` \ x_gco_ccall ->
151 rdU_stringId x_gco_ccall `thenUgn` \ y_gco_ccall ->
152 ioToUgnM (_ccall_ gco_ccall_may_gc t) `thenUgn` \ x_gco_ccall_may_gc ->
153 rdU_long x_gco_ccall_may_gc `thenUgn` \ y_gco_ccall_may_gc ->
154 ioToUgnM (_ccall_ gco_ccall_arg_tys t) `thenUgn` \ x_gco_ccall_arg_tys ->
155 rdU_list x_gco_ccall_arg_tys `thenUgn` \ y_gco_ccall_arg_tys ->
156 ioToUgnM (_ccall_ gco_ccall_res_ty t) `thenUgn` \ x_gco_ccall_res_ty ->
157 rdU_ttype x_gco_ccall_res_ty `thenUgn` \ y_gco_ccall_res_ty ->
158 returnUgn (U_co_ccall y_gco_ccall y_gco_ccall_may_gc y_gco_ccall_arg_tys y_gco_ccall_res_ty)
159 else if tag == ``co_casm'' then
160 ioToUgnM (_ccall_ gco_casm t) `thenUgn` \ x_gco_casm ->
161 rdU_literal x_gco_casm `thenUgn` \ y_gco_casm ->
162 ioToUgnM (_ccall_ gco_casm_may_gc t) `thenUgn` \ x_gco_casm_may_gc ->
163 rdU_long x_gco_casm_may_gc `thenUgn` \ y_gco_casm_may_gc ->
164 ioToUgnM (_ccall_ gco_casm_arg_tys t) `thenUgn` \ x_gco_casm_arg_tys ->
165 rdU_list x_gco_casm_arg_tys `thenUgn` \ y_gco_casm_arg_tys ->
166 ioToUgnM (_ccall_ gco_casm_res_ty t) `thenUgn` \ x_gco_casm_res_ty ->
167 rdU_ttype x_gco_casm_res_ty `thenUgn` \ y_gco_casm_res_ty ->
168 returnUgn (U_co_casm y_gco_casm y_gco_casm_may_gc y_gco_casm_arg_tys y_gco_casm_res_ty)
169 else if tag == ``co_preludedictscc'' then
170 ioToUgnM (_ccall_ gco_preludedictscc_dupd t) `thenUgn` \ x_gco_preludedictscc_dupd ->
171 rdU_coresyn x_gco_preludedictscc_dupd `thenUgn` \ y_gco_preludedictscc_dupd ->
172 returnUgn (U_co_preludedictscc y_gco_preludedictscc_dupd)
173 else if tag == ``co_alldictscc'' then
174 ioToUgnM (_ccall_ gco_alldictscc_m t) `thenUgn` \ x_gco_alldictscc_m ->
175 rdU_hstring x_gco_alldictscc_m `thenUgn` \ y_gco_alldictscc_m ->
176 ioToUgnM (_ccall_ gco_alldictscc_g t) `thenUgn` \ x_gco_alldictscc_g ->
177 rdU_hstring x_gco_alldictscc_g `thenUgn` \ y_gco_alldictscc_g ->
178 ioToUgnM (_ccall_ gco_alldictscc_dupd t) `thenUgn` \ x_gco_alldictscc_dupd ->
179 rdU_coresyn x_gco_alldictscc_dupd `thenUgn` \ y_gco_alldictscc_dupd ->
180 returnUgn (U_co_alldictscc y_gco_alldictscc_m y_gco_alldictscc_g y_gco_alldictscc_dupd)
181 else if tag == ``co_usercc'' then
182 ioToUgnM (_ccall_ gco_usercc_n t) `thenUgn` \ x_gco_usercc_n ->
183 rdU_hstring x_gco_usercc_n `thenUgn` \ y_gco_usercc_n ->
184 ioToUgnM (_ccall_ gco_usercc_m t) `thenUgn` \ x_gco_usercc_m ->
185 rdU_hstring x_gco_usercc_m `thenUgn` \ y_gco_usercc_m ->
186 ioToUgnM (_ccall_ gco_usercc_g t) `thenUgn` \ x_gco_usercc_g ->
187 rdU_hstring x_gco_usercc_g `thenUgn` \ y_gco_usercc_g ->
188 ioToUgnM (_ccall_ gco_usercc_dupd t) `thenUgn` \ x_gco_usercc_dupd ->
189 rdU_coresyn x_gco_usercc_dupd `thenUgn` \ y_gco_usercc_dupd ->
190 ioToUgnM (_ccall_ gco_usercc_cafd t) `thenUgn` \ x_gco_usercc_cafd ->
191 rdU_coresyn x_gco_usercc_cafd `thenUgn` \ y_gco_usercc_cafd ->
192 returnUgn (U_co_usercc y_gco_usercc_n y_gco_usercc_m y_gco_usercc_g y_gco_usercc_dupd y_gco_usercc_cafd)
193 else if tag == ``co_autocc'' then
194 ioToUgnM (_ccall_ gco_autocc_i t) `thenUgn` \ x_gco_autocc_i ->
195 rdU_coresyn x_gco_autocc_i `thenUgn` \ y_gco_autocc_i ->
196 ioToUgnM (_ccall_ gco_autocc_m t) `thenUgn` \ x_gco_autocc_m ->
197 rdU_hstring x_gco_autocc_m `thenUgn` \ y_gco_autocc_m ->
198 ioToUgnM (_ccall_ gco_autocc_g t) `thenUgn` \ x_gco_autocc_g ->
199 rdU_hstring x_gco_autocc_g `thenUgn` \ y_gco_autocc_g ->
200 ioToUgnM (_ccall_ gco_autocc_dupd t) `thenUgn` \ x_gco_autocc_dupd ->
201 rdU_coresyn x_gco_autocc_dupd `thenUgn` \ y_gco_autocc_dupd ->
202 ioToUgnM (_ccall_ gco_autocc_cafd t) `thenUgn` \ x_gco_autocc_cafd ->
203 rdU_coresyn x_gco_autocc_cafd `thenUgn` \ y_gco_autocc_cafd ->
204 returnUgn (U_co_autocc y_gco_autocc_i y_gco_autocc_m y_gco_autocc_g y_gco_autocc_dupd y_gco_autocc_cafd)
205 else if tag == ``co_dictcc'' then
206 ioToUgnM (_ccall_ gco_dictcc_i t) `thenUgn` \ x_gco_dictcc_i ->
207 rdU_coresyn x_gco_dictcc_i `thenUgn` \ y_gco_dictcc_i ->
208 ioToUgnM (_ccall_ gco_dictcc_m t) `thenUgn` \ x_gco_dictcc_m ->
209 rdU_hstring x_gco_dictcc_m `thenUgn` \ y_gco_dictcc_m ->
210 ioToUgnM (_ccall_ gco_dictcc_g t) `thenUgn` \ x_gco_dictcc_g ->
211 rdU_hstring x_gco_dictcc_g `thenUgn` \ y_gco_dictcc_g ->
212 ioToUgnM (_ccall_ gco_dictcc_dupd t) `thenUgn` \ x_gco_dictcc_dupd ->
213 rdU_coresyn x_gco_dictcc_dupd `thenUgn` \ y_gco_dictcc_dupd ->
214 ioToUgnM (_ccall_ gco_dictcc_cafd t) `thenUgn` \ x_gco_dictcc_cafd ->
215 rdU_coresyn x_gco_dictcc_cafd `thenUgn` \ y_gco_dictcc_cafd ->
216 returnUgn (U_co_dictcc y_gco_dictcc_i y_gco_dictcc_m y_gco_dictcc_g y_gco_dictcc_dupd y_gco_dictcc_cafd)
217 else if tag == ``co_scc_noncaf'' then
218 returnUgn (U_co_scc_noncaf )
219 else if tag == ``co_scc_caf'' then
220 returnUgn (U_co_scc_caf )
221 else if tag == ``co_scc_nondupd'' then
222 returnUgn (U_co_scc_nondupd )
223 else if tag == ``co_scc_dupd'' then
224 returnUgn (U_co_scc_dupd )
225 else if tag == ``co_id'' then
226 ioToUgnM (_ccall_ gco_id t) `thenUgn` \ x_gco_id ->
227 rdU_stringId x_gco_id `thenUgn` \ y_gco_id ->
228 returnUgn (U_co_id y_gco_id)
229 else if tag == ``co_orig_id'' then
230 ioToUgnM (_ccall_ gco_orig_id_m t) `thenUgn` \ x_gco_orig_id_m ->
231 rdU_stringId x_gco_orig_id_m `thenUgn` \ y_gco_orig_id_m ->
232 ioToUgnM (_ccall_ gco_orig_id_n t) `thenUgn` \ x_gco_orig_id_n ->
233 rdU_stringId x_gco_orig_id_n `thenUgn` \ y_gco_orig_id_n ->
234 returnUgn (U_co_orig_id y_gco_orig_id_m y_gco_orig_id_n)
235 else if tag == ``co_sdselid'' then
236 ioToUgnM (_ccall_ gco_sdselid_c t) `thenUgn` \ x_gco_sdselid_c ->
237 rdU_unkId x_gco_sdselid_c `thenUgn` \ y_gco_sdselid_c ->
238 ioToUgnM (_ccall_ gco_sdselid_sc t) `thenUgn` \ x_gco_sdselid_sc ->
239 rdU_unkId x_gco_sdselid_sc `thenUgn` \ y_gco_sdselid_sc ->
240 returnUgn (U_co_sdselid y_gco_sdselid_c y_gco_sdselid_sc)
241 else if tag == ``co_classopid'' then
242 ioToUgnM (_ccall_ gco_classopid_c t) `thenUgn` \ x_gco_classopid_c ->
243 rdU_unkId x_gco_classopid_c `thenUgn` \ y_gco_classopid_c ->
244 ioToUgnM (_ccall_ gco_classopid_o t) `thenUgn` \ x_gco_classopid_o ->
245 rdU_unkId x_gco_classopid_o `thenUgn` \ y_gco_classopid_o ->
246 returnUgn (U_co_classopid y_gco_classopid_c y_gco_classopid_o)
247 else if tag == ``co_defmid'' then
248 ioToUgnM (_ccall_ gco_defmid_c t) `thenUgn` \ x_gco_defmid_c ->
249 rdU_unkId x_gco_defmid_c `thenUgn` \ y_gco_defmid_c ->
250 ioToUgnM (_ccall_ gco_defmid_op t) `thenUgn` \ x_gco_defmid_op ->
251 rdU_unkId x_gco_defmid_op `thenUgn` \ y_gco_defmid_op ->
252 returnUgn (U_co_defmid y_gco_defmid_c y_gco_defmid_op)
253 else if tag == ``co_dfunid'' then
254 ioToUgnM (_ccall_ gco_dfunid_c t) `thenUgn` \ x_gco_dfunid_c ->
255 rdU_unkId x_gco_dfunid_c `thenUgn` \ y_gco_dfunid_c ->
256 ioToUgnM (_ccall_ gco_dfunid_ty t) `thenUgn` \ x_gco_dfunid_ty ->
257 rdU_ttype x_gco_dfunid_ty `thenUgn` \ y_gco_dfunid_ty ->
258 returnUgn (U_co_dfunid y_gco_dfunid_c y_gco_dfunid_ty)
259 else if tag == ``co_constmid'' then
260 ioToUgnM (_ccall_ gco_constmid_c t) `thenUgn` \ x_gco_constmid_c ->
261 rdU_unkId x_gco_constmid_c `thenUgn` \ y_gco_constmid_c ->
262 ioToUgnM (_ccall_ gco_constmid_op t) `thenUgn` \ x_gco_constmid_op ->
263 rdU_unkId x_gco_constmid_op `thenUgn` \ y_gco_constmid_op ->
264 ioToUgnM (_ccall_ gco_constmid_ty t) `thenUgn` \ x_gco_constmid_ty ->
265 rdU_ttype x_gco_constmid_ty `thenUgn` \ y_gco_constmid_ty ->
266 returnUgn (U_co_constmid y_gco_constmid_c y_gco_constmid_op y_gco_constmid_ty)
267 else if tag == ``co_specid'' then
268 ioToUgnM (_ccall_ gco_specid_un t) `thenUgn` \ x_gco_specid_un ->
269 rdU_coresyn x_gco_specid_un `thenUgn` \ y_gco_specid_un ->
270 ioToUgnM (_ccall_ gco_specid_tys t) `thenUgn` \ x_gco_specid_tys ->
271 rdU_list x_gco_specid_tys `thenUgn` \ y_gco_specid_tys ->
272 returnUgn (U_co_specid y_gco_specid_un y_gco_specid_tys)
273 else if tag == ``co_wrkrid'' then
274 ioToUgnM (_ccall_ gco_wrkrid_un t) `thenUgn` \ x_gco_wrkrid_un ->
275 rdU_coresyn x_gco_wrkrid_un `thenUgn` \ y_gco_wrkrid_un ->
276 returnUgn (U_co_wrkrid y_gco_wrkrid_un)
278 error ("rdU_coresyn: bad tag selection:"++show tag++"\n")