Given a Haskell "record type" :-

    data Test 
        = Test {
            name :: String,
            value :: Int
        }

    test = Test {
            name = "test",
    value = 1
        }

    main :: IO ()
    main = do
        putStrLn (name test)

Are "name" and "value" in the global name space, as the following gives an error "Multiple declarations of `name'" :-

    name :: String -> String
    name s = s

Is there any way round this ?

Many thanks in advance,

Aaron