Mercurial > urweb
comparison src/core_util.sml @ 179:3bbed533fbd2
Cases through monoize
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sun, 03 Aug 2008 10:48:36 -0400 |
parents | 5d030ee143e2 |
children | d11754ffe252 |
comparison
equal
deleted
inserted
replaced
178:eb3f9913bf31 | 179:3bbed533fbd2 |
---|---|
542 exp = fn e => fn s => S.Continue (exp (e, s)), | 542 exp = fn e => fn s => S.Continue (exp (e, s)), |
543 decl = fn d => fn s => S.Continue (decl (d, s))} d s of | 543 decl = fn d => fn s => S.Continue (decl (d, s))} d s of |
544 S.Continue v => v | 544 S.Continue v => v |
545 | S.Return _ => raise Fail "CoreUtil.File.foldMap: Impossible" | 545 | S.Return _ => raise Fail "CoreUtil.File.foldMap: Impossible" |
546 | 546 |
547 val maxName = foldl (fn ((d, _) : decl, count) => | |
548 case d of | |
549 DCon (_, n, _, _) => Int.max (n, count) | |
550 | DDatatype (_, n, _) => Int.max (n, count) | |
551 | DVal (_, n, _, _, _) => Int.max (n, count) | |
552 | DValRec vis => foldl (fn ((_, n, _, _, _), count) => Int.max (n, count)) count vis | |
553 | DExport _ => count) 0 | |
554 | |
547 end | 555 end |
548 | 556 |
549 end | 557 end |