aboutsummaryrefslogtreecommitdiff
path: root/source/lux/data/state.lux
diff options
context:
space:
mode:
Diffstat (limited to 'source/lux/data/state.lux')
-rw-r--r--source/lux/data/state.lux35
1 files changed, 0 insertions, 35 deletions
diff --git a/source/lux/data/state.lux b/source/lux/data/state.lux
deleted file mode 100644
index bc9858a29..000000000
--- a/source/lux/data/state.lux
+++ /dev/null
@@ -1,35 +0,0 @@
-## Copyright (c) Eduardo Julian. All rights reserved.
-## The use and distribution terms for this software are covered by the
-## Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
-## which can be found in the file epl-v10.html at the root of this distribution.
-## By using this software in any fashion, you are agreeing to be bound by
-## the terms of this license.
-## You must not remove this notice, or any other, from this software.
-
-(;import lux
- (lux/control (functor #as F #refer #all)
- (monad #as M #refer #all)))
-
-## [Types]
-(deftype #export (State s a)
- (-> s (, s a)))
-
-## [Structures]
-(defstruct #export State/Functor (Functor State)
- (def (F;map f ma)
- (lambda [state]
- (let [[state' a] (ma state)]
- [state' (f a)]))))
-
-(defstruct #export State/Monad (All [s]
- (Monad (State s)))
- (def M;_functor State/Functor)
-
- (def (M;wrap x)
- (lambda [state]
- [state x]))
-
- (def (M;join mma)
- (lambda [state]
- (let [[state' ma] (mma state)]
- (ma state')))))