diff --git a/lib/Hikaru/Form.hs b/lib/Hikaru/Form.hs index 713764c97928abbffb01f61d6cfdb13dfbe78303..9624adff1820f07b147eed0d8fb4cc838d35e1b1 100644 --- a/lib/Hikaru/Form.hs +++ b/lib/Hikaru/Form.hs @@ -683,7 +683,10 @@ where placeholder :: (Monad m) => l -> ControlT 'InputFieldTag l o v m () placeholder ph = ControlT do modify \s@ControlState{..} -> - s { csField = csField { fieldPlacehold = Just ph } } + s { csField = case csField of + InputField{..} -> InputField{fieldPlacehold = Just ph, ..} + SelectField{} -> error "BUG: Unreachable" + } -- | @@ -724,7 +727,10 @@ where let opts' = case csValue of Nothing -> opts Just val -> selectOptions val opts - in s { csField = csField { fieldOptions = opts' } } + in s { csField = case csField of + SelectField{} -> SelectField{fieldOptions = opts', ..} + InputField{} -> error "BUG: Unreachable" + } -- | @@ -793,7 +799,9 @@ where modify \s@ControlState{csField} -> s { csValue = value' - , csField = csField { fieldValue = maybe "" toParam value' } + , csField = case csField of + InputField{..} -> InputField{fieldValue = maybe "" toParam value', ..} + SelectField{} -> error "BUG: Unreachable" }