Finding Success (and Failure) in Haskell Exercise Solutions