aboutsummaryrefslogtreecommitdiff
path: root/data/writer.scm
diff options
context:
space:
mode:
Diffstat (limited to 'data/writer.scm')
-rw-r--r--data/writer.scm39
1 files changed, 0 insertions, 39 deletions
diff --git a/data/writer.scm b/data/writer.scm
deleted file mode 100644
index bf391c2..0000000
--- a/data/writer.scm
+++ /dev/null
@@ -1,39 +0,0 @@
-(define-module (data writer)
- #:use-module (oop goops)
- #:use-module (ice-9 match)
- #:use-module (data monoid)
- #:use-module (control monad)
- #:export (writer return-writer))
-
-(read-enable 'curly-infix)
-
-(define-class <writer> ()
- (value #:init-keyword #:value)
- (monoid #:init-keyword #:monoid))
-
-(define (writer value context)
- (make <writer>
- #:value value
- #:monoid context))
-
-(define-method (>>= (this <writer>)
- (proc <procedure>))
- (match this (($ <writer> value monoid)
- (match (proc value)
- (($ <writer> nval ncontext)
- (writer nval { monoid <> ncontext }))))))
-
-(define-method (>> (a <writer>)
- (b <writer>))
- (match a (($ <writer> _ monoid-a)
- (match b (($ <writer> val monoid-b)
- (writer val (<> monoid-a monoid-b))
- )))))
-
-;;; TODO replace this
-(define (return-writer val)
- (writer val ""))
-
-(define-method (write (this <writer>) port)
- (match this (($ <writer> value monoid)
- (format port "[Writer ~s, ~s]" value monoid))))