summaryrefslogtreecommitdiff
path: root/src/monoize.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2010-04-04 12:29:34 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2010-04-04 12:29:34 -0400
commit77f1c289bcb9228ca9605913316405c7cb63fecc (patch)
tree37d9f6d28314bc020e87c05ec9e7826b5e647d44 /src/monoize.sml
parentc936b6f87a1f30ff1aa12dfe968c5e80a04550e1 (diff)
Pushing policies through
Diffstat (limited to 'src/monoize.sml')
-rw-r--r--src/monoize.sml14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/monoize.sml b/src/monoize.sml
index 25ea87f5..6f229766 100644
--- a/src/monoize.sml
+++ b/src/monoize.sml
@@ -3738,6 +3738,20 @@ fun monoDecl (env, fm) (all as (d, loc)) =
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