Idris2/tests/idris2/basic041/QDo.idr

36 lines
515 B
Idris

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
namespace A
namespace B
export
(>>=) : Nat -> (() -> Nat) -> Nat
(>>=) x fy = x + (fy ())
export
(>>) : Nat -> Nat -> Nat
a >> f = a >>= const f
test : Nat
test = B.A.do
5
_ <- 6
7
test2 : Nat
test2 = A.B.do
5
_ <- 6
7