Slim instance declaration

From HaskellWiki
Revision as of 06:09, 5 September 2007 by Lemming (talk | contribs) (reference to Haskell-Cafe moved to "See also")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

All instance declarations should be slim.[edit]

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[edit]