ghc-exactprint-0.5.3.1: tests/examples/ghc80/records-poly.hs
{-# LANGUAGE PatternSynonyms #-}
module PolyPat where
-- Testing whether type changing updates work correctly.
pattern MyTuple :: a -> b -> (a, b)
pattern MyTuple{mfst, msnd} = (mfst, msnd)
expr1 :: (Int, String) -> (Int, Int)
expr1 a = a { msnd = 2}
expr3 a = a { msnd = 2}
expr2 :: (a, b) -> a
expr2 a = mfst a