8 data U_atype = U_atc U_unkId U_list U_long
10 rdU_atype :: _Addr -> UgnM U_atype
12 = ioToUgnM (_ccall_ tatype t) `thenUgn` \ tag@(I# _) ->
13 if tag == ``atc'' then
14 ioToUgnM (_ccall_ gatcid t) `thenUgn` \ x_gatcid ->
15 rdU_unkId x_gatcid `thenUgn` \ y_gatcid ->
16 ioToUgnM (_ccall_ gatctypel t) `thenUgn` \ x_gatctypel ->
17 rdU_list x_gatctypel `thenUgn` \ y_gatctypel ->
18 ioToUgnM (_ccall_ gatcline t) `thenUgn` \ x_gatcline ->
19 rdU_long x_gatcline `thenUgn` \ y_gatcline ->
20 returnUgn (U_atc y_gatcid y_gatctypel y_gatcline)
22 error ("rdU_atype: bad tag selection:"++show tag++"\n")