
9 Nov
2014
9 Nov
'14
2:56 a.m.
On Tue, 4 Nov 2014, Simon Peyton Jones wrote:
pattern P :: forall tvs. (match-provided ; match-required) => tau
The "; match-required" part is optional, and the "match-provided" part might be empty. So P1 and P2 would look like this:
pattern P1 :: forall a. (; Num a) => b -> (a,b) pattern P2 :: forall a. (; Num a, Ord a) => a -> a
Doesn't the ';' look a bit like something that could be incidentially introduced by some layout-aware syntax rule? Wouldn't, e.g., '|' be more explicit as a separator? example: pattern P :: forall tvs. (Eq b | Num a, Eq a) => b -> T a