Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: What About Haskell Don't You Like
4 points by adrusi on Dec 21, 2011 | hide | past | favorite | 4 comments
This is targeted towards those who use haskell regularly. What, if anything, makes you wish haskell were slightly different. It's by far the best language I know, with only lisps coming close, but I feel like it's missing something or doesn't do something right, I just can't figure out what.


Record syntax is sucky.

`>>=` and `>>` are idiomatic but rub me up the wrong way. I prefer `=<<` and `<<` (`<<` I even have to define myself).

I wish `Monad` extended `Applicative`. I wish this sort of refactoring wasn't a breaking change.

I wish wrappers like `Endo` and `Kleisli` weren't necessary. (I know why they're necessary, and it's probably the right trade-off, but...)

I wish `mempty`, `mappend` and `mconcat` had better names.


I guess I'm not as familiar with Haskell as you are, I had no idea what Endo an Kleisli were, but I agree with your other statements (except maybe the second, (>>=) and (>>) are fine for me)


I prefer (=<<) and (<<) to make it look more like normal function application. I'm quite prepared to be in the minority on this.

`Endo a` wraps `a -> a` so it can have a Monoid instance. Maybe I really want `endo :: [a -> a] -> (a -> a)`, by analogy with sum/Sum, all/All, etc.

`Kleisli m b c` wraps `b -> m c` so `Kleisli m` can have an Arrow instance (given Monad m).


The common complaints are record syntax, String/Text / ByteString/Char/Word8, the functor/applicative/monad (should be a hierarchy and there's duplicated functions:

http://www.reddit.com/r/haskell/comments/n7x5t/on_the_applic...

lack of stacktraces (loch ca't be used with 6.12 on), cabal on mac, profiling vs. inlining, GHCi's limitations and slowness, and how do you know which packages on hackage to use?

A lot of these are being worked on:

http://www.reddit.com/r/haskell/comments/k4lc4/yesod_the_lim...

http://www.reddit.com/r/haskell/comments/mm68o/ghc_74_branch...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: