let print_proc (s: proc) = match s with
Proc(id,plist,dlist,c) -> "\013Proc(" ^ (print_ide id) ^ ",\n\t" ^
(print_string_list (List.map print_param plist)) ^
(print_string_list (List.map print_dec dlist)) ^ "\n\t" ^
(print_cmd c) ^ ")\n\n"
| Func(id,plist,r,dlist,c) -> "\013Func(" ^ (print_ide id) ^ ", " ^
(print_ret r) ^ "\t" ^
(print_string_list (List.map print_param plist)) ^ "\n\t" ^
(print_string_list (List.map print_dec dlist)) ^ "\n\t" ^
(print_cmd c) ^ ")\n\n"