Stanford CS240h Class Notes -- Functional Systems in Haskell