aboutsummaryrefslogtreecommitdiff
path: root/src/lang/util.clj
diff options
context:
space:
mode:
authorEduardo Julian2014-12-11 01:24:39 -0400
committerEduardo Julian2014-12-11 01:24:39 -0400
commit9e2f13474246faebc0ab3126208b99acd715ec3c (patch)
treee0552c37b1165aa3f881ea12aa7aa2f4c9465dbf /src/lang/util.clj
parent58bfb46ba16fc1db07e501be6fcc0c940ec7a350 (diff)
+ Added an analysis phase.
+ Added a type-system.
Diffstat (limited to '')
-rw-r--r--src/lang/util.clj9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lang/util.clj b/src/lang/util.clj
index d9745e9ab..ec93ac27f 100644
--- a/src/lang/util.clj
+++ b/src/lang/util.clj
@@ -112,3 +112,12 @@
(def get-state
(fn [state]
(return* state state)))
+
+(defn within [slot monad]
+ (fn [state]
+ (let [=return (monad (get state slot))]
+ (match =return
+ [::ok [?state ?value]]
+ [::ok [(assoc state slot ?state) ?value]]
+ _
+ =return))))