303 in (base', ((nsp_class', nsp_object), Name.declare base' nsp_common)) end; |
303 in (base', ((nsp_class', nsp_object), Name.declare base' nsp_common)) end; |
304 fun namify_object base ((nsp_class, nsp_object), nsp_common) = |
304 fun namify_object base ((nsp_class, nsp_object), nsp_common) = |
305 let |
305 let |
306 val (base', nsp_object') = Name.variant base nsp_object |
306 val (base', nsp_object') = Name.variant base nsp_object |
307 in (base', ((nsp_class, nsp_object'), Name.declare base' nsp_common)) end; |
307 in (base', ((nsp_class, nsp_object'), Name.declare base' nsp_common)) end; |
308 fun namify_common upper base ((nsp_class, nsp_object), nsp_common) = |
308 fun namify_common base ((nsp_class, nsp_object), nsp_common) = |
309 let |
309 let |
310 val (base', nsp_common') = |
310 val (base', nsp_common') = Name.variant base nsp_common |
311 Name.variant (if upper then Name.enforce_case true base else base) nsp_common |
|
312 in |
311 in |
313 (base', |
312 (base', ((Name.declare base' nsp_class, Name.declare base' nsp_object), nsp_common')) |
314 ((Name.declare base' nsp_class, Name.declare base' nsp_object), nsp_common')) |
|
315 end; |
313 end; |
316 fun namify_stmt (Code_Thingol.Fun _) = namify_object |
314 fun namify_stmt (Code_Thingol.Fun _) = namify_object |
317 | namify_stmt (Code_Thingol.Datatype _) = namify_class |
315 | namify_stmt (Code_Thingol.Datatype _) = namify_class |
318 | namify_stmt (Code_Thingol.Datatypecons _) = namify_common true |
316 | namify_stmt (Code_Thingol.Datatypecons _) = namify_common |
319 | namify_stmt (Code_Thingol.Class _) = namify_class |
317 | namify_stmt (Code_Thingol.Class _) = namify_class |
320 | namify_stmt (Code_Thingol.Classrel _) = namify_object |
318 | namify_stmt (Code_Thingol.Classrel _) = namify_object |
321 | namify_stmt (Code_Thingol.Classparam _) = namify_object |
319 | namify_stmt (Code_Thingol.Classparam _) = namify_object |
322 | namify_stmt (Code_Thingol.Classinst _) = namify_common false; |
320 | namify_stmt (Code_Thingol.Classinst _) = namify_common; |
323 fun memorize_implicits sym = |
321 fun memorize_implicits sym = |
324 let |
322 let |
325 fun is_classinst stmt = case stmt |
323 fun is_classinst stmt = case stmt |
326 of Code_Thingol.Classinst _ => true |
324 of Code_Thingol.Classinst _ => true |
327 | _ => false; |
325 | _ => false; |