Hello all if I have a record like data Foo pl = Foo { label :: String, payload :: pl } how can I create a similar type where I can populate label so it is not a plain string, but a function which operates on payload? Something like label (Foo pl) = show pl