{-# LANGUAGE RecordWildCards, RecursiveDo #-}
{-# OPTIONS_GHC -Wno-unused-record-wildcards #-}

module TT where

data T = T {t1, t2 :: Int}

f :: T -> Int
f d = x
    where T {t1 = x, ..} = d

g :: T -> Int
g (T {t1 = x, ..}) = x

-- The fix to this test also affected the dorec checking code, hence this:
h :: Maybe Int
h = do
    rec
      T {t1 = x, ..} <- Just $ T 1 1
    return x
