{-# LANGUAGE PatternSynonyms #-} module Main (main) where pattern A = Nothing pattern B a = Just a pattern a :+: b = (a, b) pattern Tuple a b = (a, b) pattern A = Nothing pattern B a = Just a pattern a :+: b = (a, b)