Skip to content

Beginner UX

Now and then I join #haskell on freenode.

Some times a question pops up on ghchup. The details vary, but usually:

  1. the question is asked by someone who installs haskell for the first time
  2. the question is asked by someon who runs Mac OSX
  3. the question is asked by someone who who is not command line savvy (i.e. probably doesn't know what .bashrc is)
  4. the question revolves around "setting locale up"

E.g. from today:

<Guest_61> In order to run ghc and cabal, you need to adjust your PATH variable.> >       
           You may want to source '/Users/h/.ghcup/env' in your shell> >         
           configuration to do so (e.g. ~/.bashrc).

People who dwell in #haskell are mostly friendly but sometimes debugging involves a back and forth between the helpers and the person who seeks help: the latter is required to run some shells command, maybe doesn't really know how to do that, frustration builds up.

I am not a ghcup user myself so my suggestions might be incorrect. Obviously there is no "one size fits all". Things I have noticed:

  • "You may want to source '/Users/h/.ghcup/env' in your shell" is clear and concise for someone who knows what a shell is etc. but not for a beginner. Maybe add an example like as an example: add the line "source xyz" (without quotes) to your .bashrc file could work.
  • related: sometimes .bashrc (or similar) is not there. touch ~/.bashrc should be harmless enough?
  • "previously the script would consider the user pressing enter without typing YES a no... but that confused users, so now you have to type YES or NO" is again reasonable for somewhat experienced users. As much as it is not right, most GUI-used users will just skip through prompts like this.
  • Haskell.org page for OSX recommends first to install cabal-install and ghc via ghcup and then install haskell stack. "The more there is, the easier it breaks."

I hope this brain dump is useful, thanks for such an useful project!

Edited by f-a
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information