{-# LANGUAGE DuplicateRecordFields #-} data A = MkA { c :: Int, b :: String} deriving (Eq,Ord,Show) data B = MkB { c :: Int, a :: Int} deriving (Eq,Ord,Show) main :: IO () main = do print $ myA {c = 13} myA :: A myA = MkA {c = 10, b = "hello"}