Slim instance declaration

From HaskellWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

All instance declarations should be slim.

This means

  • Instance declarations (and default definitions) should never contain non-trivial function definitions.
  • Instance declarations (and default definitions) should only provide "plumbing" to make existing functions accessible via the type class resolution mechanism.
  • The "plumbed" functions should always be exported (since instances are always exported).

Since the naming will not always be straight-forward, the last point is particularly important and would enable more re-use and less re-invention of mostly trivial wheels.


See also