reverse defined using recursion
snoc: adds a new element at the end of a list
HoF: reverse defined using foldr
HoF: function composition
HoF: twice defined using our custom function composition
HoF: twice defined using the library composition operator (.)
HoF: odd defined using the composition operator (.)
HoF: sumSqrEven defined using the composition operator (.)
HoF: compose (a list of functions) defined using foldr
HoF: sumSqrEven defined using compose and the composition operator (.)
HoF: String Transmitter (ST) example
ST: a type for bits
ST: bin2Int defined using foldr
ST: int2Bin defined using recursion
ST: make8 (all our binary numbers have 8 bits)
ST: encodeAs8bit encodes a string as a list of 8-bit lists
ST: encode encodes a string as a list of bits
ST: chop8 chops a list of bits up into 8-bit binary numbers
ST: decode decodes a list of bits as a string of characters
ST: channel simulates a perfect communication channel