aboutsummaryrefslogtreecommitdiff
path: root/stdlib/test/test/lux/control/reader.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/test/test/lux/control/reader.lux')
-rw-r--r--stdlib/test/test/lux/control/reader.lux34
1 files changed, 18 insertions, 16 deletions
diff --git a/stdlib/test/test/lux/control/reader.lux b/stdlib/test/test/lux/control/reader.lux
index 38b4f2893..4eab1d6f3 100644
--- a/stdlib/test/test/lux/control/reader.lux
+++ b/stdlib/test/test/lux/control/reader.lux
@@ -10,26 +10,28 @@
lux/test)
(context: "Readers"
- ($_ seq
- (test "" (i/= 123 (&.run 123 &.ask)))
- (test "" (i/= 246 (&.run 123 (&.local (i/* 2) &.ask))))
- (test "" (i/= 134 (&.run 123 (:: &.Functor<Reader> map i/inc (i/+ 10)))))
- (test "" (i/= 10 (&.run 123 (:: &.Applicative<Reader> wrap 10))))
- (test "" (i/= 30 (&.run 123 (let [(^open "&/") &.Applicative<Reader>]
- (&/apply (&/wrap (i/+ 10)) (&/wrap 20))))))
- (test "" (i/= 30 (&.run 123 (do &.Monad<Reader>
- [f (wrap i/+)
- x (wrap 10)
- y (wrap 20)]
- (wrap (f x y))))))))
+ (let [(^open "&/") &.Applicative<Reader>
+ (^open "&/") &.Monad<Reader>]
+ ($_ seq
+ (test "" (i/= 123 (&.run 123 &.ask)))
+ (test "" (i/= 246 (&.run 123 (&.local (i/* 2) &.ask))))
+ (test "" (i/= 134 (&.run 123 (&/map i/inc (i/+ 10)))))
+ (test "" (i/= 10 (&.run 123 (&/wrap 10))))
+ (test "" (i/= 30 (&.run 123 (&/apply (&/wrap (i/+ 10)) (&/wrap 20)))))
+ (test "" (i/= 30 (&.run 123 (do &.Monad<Reader>
+ [f (wrap i/+)
+ x (wrap 10)
+ y (wrap 20)]
+ (wrap (f x y)))))))))
(context: "Monad transformer"
(let [(^open "io/") io.Monad<IO>]
(test "Can add reader functionality to any monad."
- (|> (do (&.ReaderT io.Monad<IO>)
- [a (&.lift (io/wrap 123))
- b (wrap 456)]
- (wrap (i/+ a b)))
+ (|> (: (&.Reader Text (io.IO Int))
+ (do (&.ReaderT io.Monad<IO>)
+ [a (&.lift (io/wrap 123))
+ b (wrap 456)]
+ (wrap (i/+ a b))))
(&.run "")
io.run
(case> 579 true