diff src/monoize.sml @ 1199:c316ca3c9ec6

Pushing policies through
author Adam Chlipala <adamc@hcoop.net>
date Sun, 04 Apr 2010 12:29:34 -0400
parents 134da5110bf7
children ae3036773768
line wrap: on
line diff
--- a/src/monoize.sml	Thu Apr 01 17:23:17 2010 -0400
+++ b/src/monoize.sml	Sun Apr 04 12:29:34 2010 -0400
@@ -3738,6 +3738,20 @@
                       fm,
                       [(L'.DTask (e1, e2), loc)])
             end
+          | L.DPolicy e =>
+            let
+                val (e, make) =
+                    case #1 e of
+                        L.EApp ((L.ECApp ((L.ECApp ((L.EFfi ("Basis", "query_policy"), _), _), _), _), _), e) =>
+                        (e, L'.PolQuery)
+                      | _ => (poly (); (e, L'.PolQuery))
+
+                val (e, fm) = monoExp (env, St.empty, fm) e
+            in
+                SOME (env,
+                      fm,
+                      [(L'.DPolicy (make e), loc)])
+            end
     end
 
 datatype expungable = Client | Channel