Add support for pattern synonym type signatures. Syntax is of the form

Authored by cactus.

Description

Add support for pattern synonym type signatures. Syntax is of the form

pattern P :: (Prov b) => (Req a) => a -> b -> Int -> T a

which declares a pattern synonym called P, with argument types a, b,
and Int, and result type T a, with provided context (Prov b) and required
context (Req a).

The Haddock submodule is also updated to use this new syntax in generated docs.

Details