To start a discussion about dangerous functions' docs
-
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 Kleidukos