1234567891011121314151617181920212223 |
- module IO where
- open import Base
- postulate
- IO : Set -> Set
- getLine : IO String
- putStrLn : String -> IO Unit
- mapM₋ : {A : Set} -> (A -> IO Unit) -> List A -> IO Unit
- bindIO : {A B : Set} -> IO A -> (A -> IO B) -> IO B
- returnIO : {A : Set} -> A -> IO A
- {-# COMPILED putStrLn putStrLn #-}
- {-# COMPILED mapM₋ (\_ -> mapM_ :: (a -> IO ()) -> [a] -> IO ()) #-}
- -- we need to throw away the type argument to mapM_
- -- and resolve the overloading explicitly (since Alonzo
- -- output is sprinkled with unsafeCoerce#).
- {-# COMPILED bindIO (\_ _ -> (>>=) :: IO a -> (a -> IO b) -> IO b) #-}
- {-# COMPILED returnIO (\_ -> return :: a -> IO a) #-}
- {-# COMPILED getLine getLine #-}
|