aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/abstract/codec.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/lux/abstract/codec.lux')
-rw-r--r--stdlib/source/lux/abstract/codec.lux28
1 files changed, 0 insertions, 28 deletions
diff --git a/stdlib/source/lux/abstract/codec.lux b/stdlib/source/lux/abstract/codec.lux
deleted file mode 100644
index 454b64cb5..000000000
--- a/stdlib/source/lux/abstract/codec.lux
+++ /dev/null
@@ -1,28 +0,0 @@
-(.module:
- [lux #*
- [control
- ["." try (#+ Try)]]]
- [//
- [monad (#+ do)]
- ["." functor]])
-
-(interface: #export (Codec m a)
- {#.doc "A way to move back-and-forth between a type and an alternative representation for it."}
- (: (-> a m)
- encode)
- (: (-> m (Try a))
- decode))
-
-(implementation: #export (compose cb-codec ba-codec)
- {#.doc "Codec composition."}
- (All [a b c]
- (-> (Codec c b) (Codec b a)
- (Codec c a)))
- (def: encode
- (|>> (\ ba-codec encode)
- (\ cb-codec encode)))
-
- (def: (decode cy)
- (do try.monad
- [by (\ cb-codec decode cy)]
- (\ ba-codec decode by))))