comparison src/mono_shake.sml @ 683:9a2c18dab11d

Expunging non-nullable rows
author Adam Chlipala <adamc@hcoop.net>
date Sun, 29 Mar 2009 13:30:01 -0400
parents 56aaa1941dad
children a3ddf05fb3e3
comparison
equal deleted inserted replaced
682:5bbb542243e8 683:9a2c18dab11d
43 43
44 fun shake file = 44 fun shake file =
45 let 45 let
46 val page_es = List.foldl 46 val page_es = List.foldl
47 (fn ((DExport (_, _, n, _, _), _), page_es) => n :: page_es 47 (fn ((DExport (_, _, n, _, _), _), page_es) => n :: page_es
48 | ((DDatabase (_, n), _), page_es) => n :: page_es
48 | (_, page_es) => page_es) [] file 49 | (_, page_es) => page_es) [] file
49 50
50 val (cdef, edef) = foldl (fn ((DDatatype (_, n, xncs), _), (cdef, edef)) => 51 val (cdef, edef) = foldl (fn ((DDatatype (_, n, xncs), _), (cdef, edef)) =>
51 (IM.insert (cdef, n, xncs), edef) 52 (IM.insert (cdef, n, xncs), edef)
52 | ((DVal (_, n, t, e, _), _), (cdef, edef)) => 53 | ((DVal (_, n, t, e, _), _), (cdef, edef)) =>