projects
/
coq-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
f7a6e08
)
fix broken sortAlts implementation
author
Adam Megacz
<megacz@cs.berkeley.edu>
Wed, 16 Mar 2011 08:55:07 +0000
(
01:55
-0700)
committer
Adam Megacz
<megacz@cs.berkeley.edu>
Wed, 16 Mar 2011 08:55:07 +0000
(
01:55
-0700)
src/Extraction-prefix.hs
patch
|
blob
|
history
diff --git
a/src/Extraction-prefix.hs
b/src/Extraction-prefix.hs
index
3dec80f
..
8ee03d8
100644
(file)
--- a/
src/Extraction-prefix.hs
+++ b/
src/Extraction-prefix.hs
@@
-47,8
+47,13
@@
getTyConTyVars tc =
then []
else TyCon.tyConTyVars 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 :: [(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
-- to do: this could be moved into Coq
coreVarToWeakVar :: Var.Var -> WeakVar