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))