equal
deleted
inserted
replaced
58 fun xs @| y = xs @ [y]; |
58 fun xs @| y = xs @ [y]; |
59 val str = PrintMode.setmp [] Pretty.str; |
59 val str = PrintMode.setmp [] Pretty.str; |
60 val concat = Pretty.block o Pretty.breaks; |
60 val concat = Pretty.block o Pretty.breaks; |
61 val brackets = Pretty.enclose "(" ")" o Pretty.breaks; |
61 val brackets = Pretty.enclose "(" ")" o Pretty.breaks; |
62 fun semicolon ps = Pretty.block [concat ps, str ";"]; |
62 fun semicolon ps = Pretty.block [concat ps, str ";"]; |
|
63 fun enum_default default sep opn cls [] = str default |
|
64 | enum_default default sep opn cls xs = Pretty.enum sep opn cls xs; |
63 |
65 |
64 |
66 |
65 (** syntax **) |
67 (** syntax **) |
66 |
68 |
67 datatype lrx = L | R | X; |
69 datatype lrx = L | R | X; |
861 in Pretty.chunks ( |
863 in Pretty.chunks ( |
862 concat [ |
864 concat [ |
863 str ("type '" ^ v), |
865 str ("type '" ^ v), |
864 (str o deresolv) class, |
866 (str o deresolv) class, |
865 str "=", |
867 str "=", |
866 Pretty.enum ";" "{" "};;" ( |
868 enum_default "();;" ";" "{" "};;" ( |
867 map pr_superclass_field superclasses |
869 map pr_superclass_field superclasses |
868 @ map pr_classparam_field classparams |
870 @ map pr_classparam_field classparams |
869 ) |
871 ) |
870 ] |
872 ] |
871 :: map pr_classparam_proj classparams |
873 :: map pr_classparam_proj classparams |
889 str "let" |
891 str "let" |
890 :: (str o deresolv) inst |
892 :: (str o deresolv) inst |
891 :: pr_tyvars arity |
893 :: pr_tyvars arity |
892 @ str "=" |
894 @ str "=" |
893 @@ (Pretty.enclose "(" ");;" o Pretty.breaks) [ |
895 @@ (Pretty.enclose "(" ");;" o Pretty.breaks) [ |
894 Pretty.enum ";" "{" "}" (map pr_superclass superarities |
896 enum_default "()" ";" "{" "}" (map pr_superclass superarities |
895 @ map pr_classparam_inst classparam_insts), |
897 @ map pr_classparam_inst classparam_insts), |
896 str ":", |
898 str ":", |
897 pr_tycoexpr NOBR (class, [tyco `%% map (ITyVar o fst) arity]) |
899 pr_tycoexpr NOBR (class, [tyco `%% map (ITyVar o fst) arity]) |
898 ] |
900 ] |
899 ) |
901 ) |