equal
deleted
inserted
replaced
1392 val init_names = Name.make_context reserved_syms; |
1392 val init_names = Name.make_context reserved_syms; |
1393 val name_modl = mk_modl_name_tab init_names module_prefix module_alias code; |
1393 val name_modl = mk_modl_name_tab init_names module_prefix module_alias code; |
1394 fun add_def (name, (def, deps)) = |
1394 fun add_def (name, (def, deps)) = |
1395 let |
1395 let |
1396 val (modl, base) = dest_name name; |
1396 val (modl, base) = dest_name name; |
1397 fun name_def base = Name.variants [base] #>> the_single; |
1397 val name_def = yield_singleton Name.variants; |
1398 fun add_fun upper (nsp_fun, nsp_typ) = |
1398 fun add_fun upper (nsp_fun, nsp_typ) = |
1399 let |
1399 let |
1400 val (base', nsp_fun') = |
1400 val (base', nsp_fun') = |
1401 name_def (if upper then first_upper base else base) nsp_fun |
1401 name_def (if upper then first_upper base else base) nsp_fun |
1402 in (base', (nsp_fun', nsp_typ)) end; |
1402 in (base', (nsp_fun', nsp_typ)) end; |
1488 |> map (name_modl o fst o dest_name) |
1488 |> map (name_modl o fst o dest_name) |
1489 |> distinct (op =) |
1489 |> distinct (op =) |
1490 |> remove (op =) modlname'; |
1490 |> remove (op =) modlname'; |
1491 val qualified = |
1491 val qualified = |
1492 imports @ map fst defs |
1492 imports @ map fst defs |
|
1493 |> distinct (op =) |
1493 |> map_filter (try deresolv) |
1494 |> map_filter (try deresolv) |
1494 |> map NameSpace.base |
1495 |> map NameSpace.base |
1495 |> has_duplicates (op =); |
1496 |> has_duplicates (op =); |
1496 val mk_import = str o (if qualified |
1497 val mk_import = str o (if qualified |
1497 then prefix "import qualified " |
1498 then prefix "import qualified " |