Skip to content

Complete functionality

Gracjan Polak edited this page Feb 21, 2016 · 5 revisions

A complete functionality has all the necessary components to be used directly by Haskell Mode users. It also has required support so that Haskell Mode community can support that functionality for prolonged periods of time.

A complete functionality satisfies the following checklist:

  1. functionality is available via a defined keybinding
  2. functionality is available via a menu option
  3. functionality is documented in the official manual
  4. interactive functions are well described in docstrings with end user in mind
  5. functionality does not require additional elisp code from user
  6. functionality works reasonably well with default settings
  7. code implementing the functionality has enough quality to not be a burden on Haskell Community
  8. code is sufficiently general to serve many users
  9. error handling is in place and is end user friendly
  10. code is reasonably well covered by unit tests
  11. functionality is discoverable
  12. functionality has low cognitive burden

For more information see Low cognitive burden and discoverability.

Transition period: currently haskell-mode has significant amount of code that does not satisfy many of the points above. Haskell Mode Community needs to decide if right decision for the overall being of the project is to improve the functionality or given limited amount of effort available to spend it is better to throw the towel and give up.