
Hi Ă–mer,
I don't think that you need the 'HasWidgets' class, it really doesn't give you a lot. Something like a function 'withFocused' would be a lot more useful:
withFocused :: (Widget -> Widget) -> State Program ()
Greetings, Daniel _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
This looks like a use case for a lens to me.
focused :: Lens' Program Widget over focused :: (Widget -> Widget) -> Program -> Program
(focused %=) :: MonadState Program m => (Widget -> Widget) -> m () zoom focused :: (MonadState Widget m, MonadState Program n) => m a -> n a