@@ -149,14 +149,14 @@ type Namespace = Text
149149
150150data TextNodeConfig t
151151 = TextNodeConfig { _textNodeConfig_initialContents :: Text
152− , _textNodeConfig_setContents :: Event t Text
152+ , _textNodeConfig_setContents :: Maybe (Event t Text)
153153 }
154154
155155instance (Reflex t) => Default (TextNodeConfig t) where
156156 {-# INLINABLE def #-}
157157 def = TextNodeConfig
158158 { _textNodeConfig_initialContents = mempty
159− , _textNodeConfig_setContents = never
159+ , _textNodeConfig_setContents = Nothing
160160 }
161161
162162data TextNode d t = TextNode
@@ -327,9 +327,21 @@ data SelectElement er d t = SelectElement
327327 , _selectElement_raw :: RawSelectElement d
328328 }
329329
330+makeLensesFor
331+ [("_textNodeConfig_initialContents", "textNodeConfig_initialContents")]
332+ ''TextNodeConfig
333+
334+-- | This lens is technically illegal. The implementation of 'TextNodeConfig' uses a 'Maybe' under the hood for efficiency reasons. However, always interacting with 'TextNodeConfig' via lenses will always behave correctly, and if you pattern match on it, you should always treat 'Nothing' as 'never'.
335+textNodeConfig_setContents :: Reflex t => Lens (TextNodeConfig t) (TextNodeConfig t) (Event t Text) (Event t Text)
336+textNodeConfig_setContents =
337+ let getter t = case _textNodeConfig_setContents t of
338+ Nothing -> never
339+ Just e -> e
340+ setter t e = t { _textNodeConfig_setContents = Just e }
341+ in lens getter setter
342+
330343concat <$> mapM makeLenses
331− [ ''TextNodeConfig
332− , ''ElementConfig
344+ [ ''ElementConfig
333345 , ''PlaceholderConfig
334346 , ''InputElementConfig
335347 , ''TextAreaElementConfig