1{-# LANGUAGE BangPatterns #-}
2{-# LANGUAGE FlexibleContexts #-}
4{-# LANGUAGE RankNTypes #-}
5{-# LANGUAGE ScopedTypeVariables #-}
10import qualified Data.Dependent.Map as DMap
11import Data.Dependent.Sum
15import Reflex.Requester.Base
16import Reflex.Requester.Class
19data RequestInt a where
20 RequestInt :: Int -> RequestInt Int
24 os1 <- runApp' (unwrapApp testOrdering) $
28 let ![[Just [10,9,8,7,6,5,4,3,2,1]]] = os1
29 os2 <- runApp' (unwrapApp testSimultaneous) $ map Just $
36 let ![[Just [1,3,5,7,9]],[Nothing,Nothing],[Just [2,4,6,8,10]],[Just [2,4,6,8,10],Nothing]] = os2
39unwrapRequest :: DSum tag RequestInt -> Int
40unwrapRequest (_ :=> RequestInt i) = i
42unwrapApp :: ( Reflex t, Monad m )
43 => (a -> RequesterT t RequestInt Identity m ())
47 ((), e) <- runRequesterT (x appIn) never
48 return $ fmap (map unwrapRequest . requesterDataToList) e
50testOrdering :: ( Response m ~ Identity
51 , Request m ~ RequestInt
56testOrdering pulse = forM_ [10,9..1] $ \i ->
57 requestingIdentity (RequestInt i <$ pulse)
59testSimultaneous :: ( Response m ~ Identity
60 , Request m ~ RequestInt
63 => Event t (These () ())
65testSimultaneous pulse = do
66 let tellE = fmapMaybe (^? here) pulse
67 switchE = fmapMaybe (^? there) pulse
68 forM_ [1,3..9] $ \i -> runWithReplace (requestingIdentity (RequestInt i <$ tellE)) $ ffor switchE $ \_ ->
69 requestingIdentity (RequestInt (i+1) <$ tellE)
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list