From 88ea557055dc5cb1dcb15aeb65d058132ac24e22 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Sun, 29 Apr 2012 20:37:45 -0400 Subject: Fix generation of normal datatypes from polymorphic variants --- src/mono_print.sml | 3 ++- src/monoize.sml | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mono_print.sml b/src/mono_print.sml index bf1b0935..e5ef4cf8 100644 --- a/src/mono_print.sml +++ b/src/mono_print.sml @@ -400,7 +400,8 @@ fun p_datatype env (x, n, cons) = let val env = E.pushDatatype env x n cons in - box [string x, + box [if !debug then (string (x ^ "__" ^ Int.toString n)) + else string x, space, string "=", space, diff --git a/src/monoize.sml b/src/monoize.sml index 1c11e5c7..6bef134e 100644 --- a/src/monoize.sml +++ b/src/monoize.sml @@ -69,6 +69,8 @@ fun pvar (r, r', loc) = let val n = choosePvar () val fs = map (fn (x, t) => (x, choosePvar (), t)) r' + val r = ListMergeSort.sort (fn (((L.CName x, _), _), ((L.CName y, _), _)) => String.compare (x, y) = GREATER + | _ => raise Fail "Monoize: pvar, not CName") r val (r, fs') = ListPair.foldr (fn ((_, t), (x, n, _), (r, fs')) => ((x, n, SOME t) :: r, SM.insert (fs', x, n))) ([], SM.empty) (r, fs) -- cgit v1.2.3