comparison src/core_util.sml @ 802:ef6de4075dc1

Fix a Core_untangle bug that missed closure variable references; XHTMLize
author Adam Chlipala <adamc@hcoop.net>
date Sat, 16 May 2009 12:41:33 -0400
parents 6271f0e3c272
children 61a1f5c5ae2c
comparison
equal deleted inserted replaced
801:5f49a6b759cb 802:ef6de4075dc1
938 fn vis' => 938 fn vis' =>
939 (DValRec vis', loc)) 939 (DValRec vis', loc))
940 end 940 end
941 | DExport _ => S.return2 dAll 941 | DExport _ => S.return2 dAll
942 | DTable (x, n, c, s, pe, pc, ce, cc) => 942 | DTable (x, n, c, s, pe, pc, ce, cc) =>
943 S.bind2 (mfc ctx c, 943 let
944 fn c' => 944 val loc = #2 ce
945 S.bind2 (mfe ctx pe, 945 val ct = (CFfi ("Basis", "sql_table"), loc)
946 fn pe' => 946 val ct = (CApp (ct, (CConcat (pc, cc), loc)), loc)
947 S.bind2 (mfc ctx pc, 947 val ct = (CApp (ct, cc), loc)
948 fn pc' => 948 val ctx' = bind (ctx, NamedE (x, n, ct, NONE, s))
949 S.bind2 (mfe ctx ce, 949 in
950 fn ce' => 950 S.bind2 (mfc ctx c,
951 S.map2 (mfc ctx cc, 951 fn c' =>
952 fn cc' => 952 S.bind2 (mfe ctx' pe,
953 (DTable (x, n, c', s, pe', pc', ce', cc'), loc)))))) 953 fn pe' =>
954 S.bind2 (mfc ctx pc,
955 fn pc' =>
956 S.bind2 (mfe ctx' ce,
957 fn ce' =>
958 S.map2 (mfc ctx cc,
959 fn cc' =>
960 (DTable (x, n, c', s, pe', pc', ce', cc'), loc))))))
961 end
954 | DSequence _ => S.return2 dAll 962 | DSequence _ => S.return2 dAll
955 | DView (x, n, s, e, c) => 963 | DView (x, n, s, e, c) =>
956 S.bind2 (mfe ctx e, 964 S.bind2 (mfe ctx e,
957 fn e' => 965 fn e' =>
958 S.map2 (mfc ctx c, 966 S.map2 (mfc ctx c,