module Main where
data A = A {x :: Int} deriving (Show)
main :: IO ()
main = print $ Just A {x = 5}

(correctly, according to Haskell 98) prints

Just A {x = 5}

in hugs, but the more easily comprehendible

Just (A {x = 5})

in ghci.

According to Haskell 98,

A {x = 5}

is an atomic expression - but it doesn't look atomic! This violates the principle of least surprise.

Before coming across labelled fields, but having had "function application binds tightest" drummed into you to understand how to read expressions containing a mixture of applications and infix operators, of the following 2 functions: