diff options
Diffstat (limited to 'stdlib/source/lux/abstract/codec.lux')
-rw-r--r-- | stdlib/source/lux/abstract/codec.lux | 28 |
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)))) |