function bindList

###### [b] ::= l::[a] fn::([b] ::= a) In file: List.sv

function returnList

###### [a] ::= x::a In file: List.sv

nonterminal IOMonad<a>

In file: IO.sv

abstract production bindIO

###### top::IOMonad<b> ::= st::IOMonad<a> fn::(IOMonad<b> ::= a) In file: IO.sv

abstract production returnIO

###### top::IOMonad<a> ::= x::a In file: IO.sv

function runIO

###### IO ::= st::IOMonad<a> ioIn::IO In file: IO.sv

function evalIO

###### IOVal<a> ::= st::IOMonad<a> ioIn::IO In file: IO.sv

function unsafeEvalIO

###### a ::= st::IOMonad<a> In file: IO.sv

abstract production printM

###### top::IOMonad<Unit> ::= s::String In file: IO.sv

abstract production readLineStdinM

###### top::IOMonad<String> ::= In file: IO.sv

abstract production exitM

###### top::IOMonad<Unit> ::= val::Integer In file: IO.sv

abstract production mkdirM

###### top::IOMonad<Boolean> ::= s::String In file: IO.sv

abstract production systemM

###### top::IOMonad<Integer> ::= s::String In file: IO.sv

abstract production writeFileM

###### top::IOMonad<Unit> ::= file::String contents::String In file: IO.sv

abstract production appendFileM

###### top::IOMonad<Unit> ::= file::String contents::String In file: IO.sv

abstract production fileTimeM

###### top::IOMonad<Integer> ::= s::String In file: IO.sv

abstract production isFileM

###### top::IOMonad<Boolean> ::= s::String In file: IO.sv

abstract production isDirectoryM

###### top::IOMonad<Boolean> ::= s::String In file: IO.sv

abstract production readFileM

###### top::IOMonad<String> ::= s::String In file: IO.sv

abstract production cwdM

###### top::IOMonad<String> ::= In file: IO.sv

abstract production envVarM

###### top::IOMonad<String> ::= s::String In file: IO.sv

abstract production listContentsM

###### top::IOMonad<[String]> ::= s::String In file: IO.sv

abstract production deleteFileM

###### top::IOMonad<Boolean> ::= s::String In file: IO.sv

abstract production deleteTreeM

###### top::IOMonad<Unit> ::= s::String In file: IO.sv

abstract production copyFileM

###### top::IOMonad<Unit> ::= src::String dst::String In file: IO.sv

abstract production touchFileM

###### top::IOMonad<Unit> ::= file::String In file: IO.sv

nonterminal State<s a>

In file: State.sv

abstract production bindState

###### top::State<s b> ::= st::State<s a> fn::(State<s b> ::= a) In file: State.sv

abstract production returnState

###### top::State<s a> ::= x::a In file: State.sv

abstract production getState

###### top::State<s s> ::= In file: State.sv

abstract production setState

###### top::State<s Unit> ::= newState::s In file: State.sv

function runState

###### Pair<s a> ::= st::State<s a> initialState::s In file: State.sv

function evalState

###### a ::= st::State<s a> initialState::s In file: State.sv

function bindMaybe

###### Maybe<b> ::= m::Maybe<a> fn::(Maybe<b> ::= a) In file: Maybe.sv

function returnMaybe

###### Maybe<a> ::= x::a In file: Maybe.sv