ormolu-0.8.1.1: data/examples/declaration/value/function/pattern/or-patterns.hs
{-# LANGUAGE PatternSynonyms #-}
tasty (Cupcake; Cookie) = True
tasty (Liquorice; Raisins) = False
f :: (Eq a, Show a) => a -> a -> Bool
f a ((== a) -> True; show -> "yes") = True
f _ _ = False
small (abs -> (0; 1; 2); 3) = True -- -3 is not small
small _ = False
type Coll a = Either [a] (Set a)
pattern None <- (Left []; Right (toList -> []))
case e of
1; 2; 3 -> x
4; (5; 6) -> y
sane e = case e of
1
2
3 ->
a
4
5;6 -> b
7;8 -> c
insane e = case e of
A _ _; B _
C -> 3
(D; E (Just _) Nothing)
-> 4
F -> 5
food foo@(A;
B;
C) = Just foo
food _ = Nothing