
I would appreciate some advice about the best way to manipulate data structures in Haskell. Let's assume I have what in an OO language would be a class with a number of instance variables. When I want to change one of the values of one of those instance variables in Haskell I must rebuild the entire structure. Even worse, if one of those instance variables is a reference to another data structure, then when I change that referenced data structure, I am forced to rebuild my top level variable. For example. data Struct1 = Struct1 {var1 :: Struct11, var2 :: Struct1, ... } data Struct11 = Struct11 {var11 :: ... } Let's assume I have x :: Struct1 and that I change the value of var11 . var1 $ x. Doesn't that require that I rebuild x? Is there a better way? Thanks. * -- Russ*