From 7b4102f909b03506dc1d7a30d3bd0dc057439b98 Mon Sep 17 00:00:00 2001 From: Adam Megacz Date: Wed, 16 Mar 2011 01:55:07 -0700 Subject: [PATCH 1/1] fix broken sortAlts implementation --- src/Extraction-prefix.hs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Extraction-prefix.hs b/src/Extraction-prefix.hs index 3dec80f..8ee03d8 100644 --- a/src/Extraction-prefix.hs +++ b/src/Extraction-prefix.hs @@ -47,8 +47,13 @@ getTyConTyVars tc = then [] else TyCon.tyConTyVars tc +cmpAlts :: (CoreSyn.AltCon,[Var.Var],CoreSyn.Expr Var.Var) -> (CoreSyn.AltCon,[Var.Var],CoreSyn.Expr Var.Var) -> Data.Ord.Ordering +cmpAlts (CoreSyn.DEFAULT,_,_) _ = Data.Ord.LT +cmpAlts _ (CoreSyn.DEFAULT,_,_) = Data.Ord.GT +cmpAlts (a1,_,_) (a2,_,_) = Data.Ord.compare a2 a1 + sortAlts :: [(CoreSyn.AltCon,[Var.Var],CoreSyn.Expr Var.Var)] -> [(CoreSyn.AltCon,[Var.Var],CoreSyn.Expr Var.Var)] -sortAlts x = Data.List.sortBy (\(a1,_,_) -> \(a2,_,_) -> Data.Ord.compare a1 a2) x +sortAlts x = Data.List.sortBy (\a b -> if a `CoreSyn.ltAlt` b then Data.Ord.LT else Data.Ord.GT) x -- to do: this could be moved into Coq coreVarToWeakVar :: Var.Var -> WeakVar -- 1.7.10.4