Skip to content

To start a discussion about dangerous functions' docs

syd@cs-syd.eu requested to merge kerckhove_ts/ghc:partial-functions-docs into master
  • are either individually buildable or squashed
  • have commit messages which describe what they do (referring to [Notes][notes] and tickets using #NNNN syntax when appropriate)
  • have added source comments describing your change. For larger changes you likely should add a [Note][notes] and cross-reference it from the relevant places.
  • add a testcase to the testsuite.

I made this PR to start a discussion about more clearly documenting which functions are dangerous for use in production. This PR is in no way intended to be merged as-is.

I'm happy to update these docs where appropriate because they're certainly not ideal:

  • The tone tone is not necessarily great.
  • I'm not sure where we're allowed to link to.
  • Maybe the advice is not all good.
  • Maybe the docs are not in the right place.

My basic concern is that new haskellers seem to use a lot of dangerous functions and cause serious production issues in the process. I'd like it to be PAINFULLY obvious when I'm using a dangerous function.

(By "dangerous", I mean "partial", "unsafe", "has unexpected performance characteristics", "doesn't do what you want" or "doesn't do what you think it does".)

cc @nh2 because he taught me about a lot of these issues.

Edited by Hécate Moonlight

Merge request reports