module DynRadioGroupF where
import Fudgets
dynRadioGroupF alts startalt = dynRadioGroupF' standard alts startalt
dynRadioGroupF' pm alts startalt =
loopThroughRightF (mapstateF ctrl (alts,startalt))
(dynF (rgF alts startalt))
where
rgF = radioGroupF' pm
ctrl (alts,current) = either fromRadioGroupF fromOutside
where
fromRadioGroupF choice = ((alts,choice),[Right (alts,choice)])
fromOutside (alts',current') =
((alts',current'),
if map fst alts' == map fst alts
then [Left (Right current')]
else [Left (Left (rgF alts' current'))])