Idris2-boot/tests/idris2/reg006/Cmd.idr
Edwin Brady 1dd81ff10b Look under . for function name on lhs
Need this to rule out some ambiguous names. Fixes #204.
2020-03-05 11:22:48 +00:00

21 lines
525 B
Idris

data MyCmd : Type -> Type where
Display : String -> MyCmd ()
Input : MyCmd String
Pure : ty -> MyCmd ty
(>>=) : MyCmd a -> (a -> MyCmd b) -> MyCmd b
runMyCmd : MyCmd a -> IO a
runMyCmd (Display str) = putStrLn str
runMyCmd Input = do str <- getLine
pure str
runMyCmd (Pure x) = pure x
runMyCmd (c >>= f) = do res <- runMyCmd c
runMyCmd (f res)
myCmdTest : MyCmd ()
myCmdTest = do Display "Hello"
x <- Input
Display x
Pure ()