namespace MyDo export (>>=) : a -> (a -> IO b) -> IO b (>>=) val k = k val foo : IO () foo = MyDo.do x <- "Silly" putStrLn x namespace A namespace B export (>>=) : Nat -> (() -> Nat) -> Nat (>>=) x fy = x + (fy ()) test : Nat test = B.A.do 5 6 7 test2 : Nat test2 = A.B.do 5 6 7