Idris2/tests/idris2/basic041/QDo.idr

36 lines
515 B
Idris
Raw Normal View History

namespace MyDo
export
(>>=) : a -> (a -> IO b) -> IO b
(>>=) val k = k val
export
(>>) : a -> IO b -> IO b
a >> f = a >>= const f
foo : IO ()
foo = MyDo.do
x <- "Silly"
putStrLn x
2020-08-30 20:52:27 +03:00
namespace A
namespace B
export
(>>=) : Nat -> (() -> Nat) -> Nat
(>>=) x fy = x + (fy ())
export
(>>) : Nat -> Nat -> Nat
a >> f = a >>= const f
2020-08-30 20:52:27 +03:00
test : Nat
test = B.A.do
5
_ <- 6
2020-08-30 20:52:27 +03:00
7
2020-08-30 20:52:27 +03:00
test2 : Nat
test2 = A.B.do
5
_ <- 6
2020-08-30 20:52:27 +03:00
7