major rewrite from Match documentation (haddock style)