src/Tools/Code/code_haskell.ML
changeset 39139 d1d4d808be26
parent 39138 c79c1e4e1111
child 39141 026526cba0e6
equal deleted inserted replaced
39138:c79c1e4e1111 39139:d1d4d808be26
   314   in (deresolver, hs_program) end;
   314   in (deresolver, hs_program) end;
   315 
   315 
   316 fun serialize_haskell module_prefix module_name string_classes labelled_name
   316 fun serialize_haskell module_prefix module_name string_classes labelled_name
   317     raw_reserved includes module_alias
   317     raw_reserved includes module_alias
   318     syntax_class syntax_tyco syntax_const program
   318     syntax_class syntax_tyco syntax_const program
   319     (stmt_names, presentation_stmt_names) width =
   319     (stmt_names, presentation_stmt_names) =
   320   let
   320   let
   321     val reserved = fold (insert (op =) o fst) includes raw_reserved;
   321     val reserved = fold (insert (op =) o fst) includes raw_reserved;
   322     val (deresolver, hs_program) = haskell_program_of_program labelled_name
   322     val (deresolver, hs_program) = haskell_program_of_program labelled_name
   323       module_prefix reserved module_alias program;
   323       module_prefix reserved module_alias program;
   324     val contr_classparam_typs = Code_Thingol.contr_classparam_typs program;
   324     val contr_classparam_typs = Code_Thingol.contr_classparam_typs program;
   394       (fn width => (fn NONE => K () o map (writeln_pretty width o snd)
   394       (fn width => (fn NONE => K () o map (writeln_pretty width o snd)
   395         | SOME file => K () o map (write_module width (check_destination file))))
   395         | SOME file => K () o map (write_module width (check_destination file))))
   396       (fn width => (rpair [] o cat_lines o map (string_of_pretty width o snd)))
   396       (fn width => (rpair [] o cat_lines o map (string_of_pretty width o snd)))
   397       (map (uncurry print_module) includes
   397       (map (uncurry print_module) includes
   398         @ map serialize_module (Symtab.dest hs_program))
   398         @ map serialize_module (Symtab.dest hs_program))
   399       width
       
   400   end;
   399   end;
   401 
   400 
   402 val literals = let
   401 val literals = let
   403   fun char_haskell c =
   402   fun char_haskell c =
   404     let
   403     let