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:
2444f0c
)
Unify.hs: commenting fix
author
Adam Megacz
<megacz@cs.berkeley.edu>
Mon, 16 May 2011 07:43:22 +0000
(
00:43
-0700)
committer
Adam Megacz
<megacz@cs.berkeley.edu>
Mon, 16 May 2011 07:43:22 +0000
(
00:43
-0700)
examples/Unify.hs
patch
|
blob
|
history
diff --git
a/examples/Unify.hs
b/examples/Unify.hs
index
03d16fc
..
afe3405
100644
(file)
--- a/
examples/Unify.hs
+++ b/
examples/Unify.hs
@@
-59,10
+59,10
@@
resolve (Unifier u) v | member v u = v:(concatMap (resolve (Unifier u)) $ occurr
occurs :: Unifiable t => Unifier t -> UVar -> t -> Bool
occurs u v x = elem v $ concatMap (resolve u) (occurrences x)
occurs :: Unifiable t => Unifier t -> UVar -> t -> Bool
occurs u v x = elem v $ concatMap (resolve u) (occurrences x)
--- | Given two unifiables, find their most general unifier. Do not override this.
+-- | Given two unifiables, find their most general unifier.
unify :: Unifiable t => t -> t -> Unifier t
unify v1 v2 | (Just v1') <- project v1, (Just v2') <- project v2, v1'==v2' = emptyUnifier
unify :: Unifiable t => t -> t -> Unifier t
unify v1 v2 | (Just v1') <- project v1, (Just v2') <- project v2, v1'==v2' = emptyUnifier
-unify v1 v2 | (Just v1') <- project v1 = if occurs emptyUnifier v1' v2
+unify v1 v2 | (Just v1') <- project v1 = if occurs emptyUnifier v1' v2
then error "occurs check failed"
else Unifier $ insert v1' v2 empty
unify v1 v2 | (Just v2') <- project v2 = unify v2 v1
then error "occurs check failed"
else Unifier $ insert v1' v2 empty
unify v1 v2 | (Just v2') <- project v2 = unify v2 v1