I'm trying to create a haskell implementation of json rpc, I try to define protocol using record like this:

data Request = Request {
    version :: Integer
  , id      :: Integer
  , method  :: String
  , args    :: [Value]
} deriving (Typeable, Data, Show)

data Response = Response {
    version :: Integer
  , id      :: Integer
  , code    :: Integer
  , method   :: String
  , result  :: Value
} deriving (Typeable, Data, Show)

so i can use json library to encode/decode it.
But this code fails, because haskell will define access function automaticlly, and function names conflicts.
My question is, is there a way i can define record without access function, so i can have same attribute name in multiple record.


--
http://www.yi-programmer.com/blog/