Perhaps
data TextfieldProps = TextId | TextLabel | TextValue
-- and similarly for ButtonProps?
I confess to not fully understanding the GUI modelling attempted here,
which isn't to say that you aren't on the right track.
To help you and help us help you better, one approach known to be
successful is to sketch out the code (better yet, the type signatures!) of
what you'd like to write, e.g. how are TextfieldProps and ButtonProps used?
What functions act on them?
-- Kim-Ee