@@ -82,6 +82,11 @@ getAndDecode url = do
8282 r <- performRequestAsync $ fmap (\x -> XhrRequest "GET" x def) url
8383 return $ fmap decodeXhrResponse r
8484
85+getMay :: MonadWidget t m => (Event t a -> m (Event t b)) -> Event t (Maybe a) -> m (Event t (Maybe b))
86+getMay f e = do
87+ e' <- f (fmapMaybe id e)
88+ return $ leftmost [fmap Just e', fmapMaybe (maybe (Just Nothing) (const Nothing)) e]
89+
8590decodeText :: FromJSON a => Text -> Maybe a
8691decodeText = decode . toS
8792