{-# LANGUAGE PatternSynonyms #-}

pattern P a <- C a where P a = C a

pattern HeadC x <- x:xs where
  HeadC x = [x]

pattern HeadC' x <-
  x:xs
  where
    HeadC' x = [x]

pattern Simple <- "Simple"
  where
    Simple = "Complicated"

pattern a :< b <-
  (a , b)
  where
    a :< b = (a, b)
