data Foo = Foo { bar :: String, baz :: Int } main :: IO () main = do putStrLn $ fooToString exampleFoo putStrLn $ safeFooToString exampleFoo fooToString :: Foo -> String fooToString foo = case foo of Foo { bar = bar } -> bar safeFooToString :: Foo -> String safeFooToString foo = case foo of Foo bar -> bar exampleFoo :: Foo exampleFoo = Foo { bar = "Bar" , baz = 25 }