
I am learning haskell and i need some advice about writing functional-style code. Give the following code below, my question is - how do i setup a dependency of User on Common? Obviously what i have there is wrong, because a change in common (i know it's actually immutable) is not reflected in the version captured by User. I understand why my current approach has not a chance a of working, I am using it to, hopefully, illustrate my goal. Thanks for any suggestions
data Common = Common { cName :: String, cValue :: Int } deriving (Show) data User = User { uCommon :: Common } deriving (Show) makeWorld = (commons, users) where commons = [Common "A" 1, Common "B" 2] users = [User (head commons)]
main = do let world = makeWorld putStrLn (show world)