IOSpec-0.2.3: A pure specification of the IO monad.




A pure specification of getChar and putChar.


The IOTeletype monad

data Teletype a Source

An expression of type IOSpec Teletype a corresponds to an IO computation that may print to or read from stdout and stdin respectively.

There is a minor caveat here. I assume that stdin and stdout are not buffered. This is not the standard behaviour in many Haskell compilers.

Pure getChar and putChar

getChar :: Teletype :<: f => IOSpec f CharSource

The getChar function can be used to read a character from the teletype.

putChar :: Teletype :<: f => Char -> IOSpec f ()Source

The getChar function can be used to print a character to the teletype.