@@ -0,0 +1,29 @@
1+{-# LANGUAGE TypeFamilies #-}
2+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
3+import qualified Data.AppendMap as Map
7+newtype MyQuery = MyQuery SelectedCount
8+ deriving (Show, Read, Eq, Ord, Monoid, Semigroup, Additive, Group)
10+instance Query MyQuery where
11+ type QueryResult MyQuery = ()
14+instance (Ord k, Query a) => Query (Map.AppendMap k a) where
15+ type QueryResult (Map.AppendMap k a) = Map.AppendMap k (QueryResult a)
19+main = mainWidget $ do
21+ n <- count =<< button "Increment"
23+ queryDyn $ zipDynWith Map.singleton n $ pure $ MyQuery $ SelectedCount 1
26+ replace <- button "Replace"
27+ widgetHold w $ w <$ replace
28+ (_, q) <- runQueryT outer $ pure mempty
29+ display $ incrementalToDynamic q