haskell lectures cs1501