haskell language notes