
Dear Haskelleers, I suspect my problem has been discussed many times and under many forms, so please don't shoot me for asking. I could not find an acceptable solution yet, and beeing as stubborn as i am, I still hope the solution is eluding me because of my poor haskell knowlegde. So here I am posting my question on this mailing list. Basically I am trying to GUI Widgets using haskell types (Buttons, Textfields, etc.). 1/ Using Records is not acceptable because of the name clashes between attribute names. I could use prefixes and write functions in typeclasses for accessor, but it's ugly and a lot of work. 2/ I decided to keep the attributes in Maps, so basically a textfield would be data Textfield = Textfield (Map.Map TextfieldProps String) The problem is: how to define TextfieldProps? It should be something like: data TextfieldProps = Id | Label | Value But then, buttons also have Id's and labels. So following is not accepted anymore: data ButtonProps = Id | Label | OnClick Ideas and suggestions are much appreciated. Thank You, Răzvan