Mercurial > urweb
comparison src/mono_util.sml @ 251:326fb4686f60
Monoize transaction identifiers; improve disjointness prover on irreducible folds; change 'query' type
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sun, 31 Aug 2008 10:36:54 -0400 |
parents | ab86aa858e6c |
children | 7e9bd70ad3ce |
comparison
equal
deleted
inserted
replaced
250:98f551ddd54b | 251:326fb4686f60 |
---|---|
211 S.bind2 (mfe ctx e1, | 211 S.bind2 (mfe ctx e1, |
212 fn e1' => | 212 fn e1' => |
213 S.map2 (mfe ctx e2, | 213 S.map2 (mfe ctx e2, |
214 fn e2' => | 214 fn e2' => |
215 (ESeq (e1', e2'), loc))) | 215 (ESeq (e1', e2'), loc))) |
216 | ELet (x, t, e1, e2) => | |
217 S.bind2 (mft t, | |
218 fn t' => | |
219 S.bind2 (mfe ctx e1, | |
220 fn e1' => | |
221 S.map2 (mfe (bind (ctx, RelE (x, t))) e2, | |
222 fn e2' => | |
223 (ELet (x, t', e1', e2'), loc)))) | |
216 | 224 |
217 | EClosure (n, es) => | 225 | EClosure (n, es) => |
218 S.map2 (ListUtil.mapfold (mfe ctx) es, | 226 S.map2 (ListUtil.mapfold (mfe ctx) es, |
219 fn es' => | 227 fn es' => |
220 (EClosure (n, es'), loc)) | 228 (EClosure (n, es'), loc)) |