315 of Code_Thingol.Classinst _ => true |
315 of Code_Thingol.Classinst _ => true |
316 | _ => false; |
316 | _ => false; |
317 val implicits = filter (is_classinst o Graph.get_node program) |
317 val implicits = filter (is_classinst o Graph.get_node program) |
318 (Graph.imm_succs program name); |
318 (Graph.imm_succs program name); |
319 in union (op =) implicits end; |
319 in union (op =) implicits end; |
320 fun modify_stmt (Code_Thingol.Datatypecons _) = NONE |
320 fun modify_stmt (_, Code_Thingol.Datatypecons _) = NONE |
321 | modify_stmt (Code_Thingol.Classrel _) = NONE |
321 | modify_stmt (_, Code_Thingol.Classrel _) = NONE |
322 | modify_stmt (Code_Thingol.Classparam _) = NONE |
322 | modify_stmt (_, Code_Thingol.Classparam _) = NONE |
323 | modify_stmt stmt = SOME stmt; |
323 | modify_stmt (_, stmt) = SOME stmt; |
324 in |
324 in |
325 Code_Namespace.hierarchical_program labelled_name { module_alias = module_alias, reserved = reserved, |
325 Code_Namespace.hierarchical_program labelled_name { module_alias = module_alias, reserved = reserved, |
326 empty_nsp = ((reserved, reserved), reserved), namify_module = namify_module, namify_stmt = namify_stmt, |
326 empty_nsp = ((reserved, reserved), reserved), namify_module = namify_module, namify_stmt = namify_stmt, |
327 cyclic_modules = true, empty_data = [], memorize_data = memorize_implicits, modify_stmts = map modify_stmt } program |
327 cyclic_modules = true, empty_data = [], memorize_data = memorize_implicits, modify_stmts = map modify_stmt } program |
328 end; |
328 end; |