on develop help sign in
Moves Deletable across from reflex-dom.
35ed60cDave Laing
reflex.cabal+2
@@ -25,6 +25,7 @@ library
25 exception-transformers == 0.4.*,
25 exception-transformers == 0.4.*,
26 haskell-src-exts >= 1.16 && < 1.18,
26 haskell-src-exts >= 1.16 && < 1.18,
27 haskell-src-meta == 0.6.*,
27 haskell-src-meta == 0.6.*,
28+ monad-control >= 1.0.1 && < 1.1,
28 mtl >= 2.1 && < 2.3,
29 mtl >= 2.1 && < 2.3,
29 primitive >= 0.5 && < 0.7,
30 primitive >= 0.5 && < 0.7,
30 ref-tf == 0.4.*,
31 ref-tf == 0.4.*,
@@ -42,6 +43,7 @@ library
42 Data.WeakBag,
43 Data.WeakBag,
43 Reflex,
44 Reflex,
44 Reflex.Class,
45 Reflex.Class,
46+ Reflex.Deletable.Class,
45 Reflex.Dynamic,
47 Reflex.Dynamic,
46 Reflex.Dynamic.TH,
48 Reflex.Dynamic.TH,
47 Reflex.Dynamic.Uniq,
49 Reflex.Dynamic.Uniq,
src/Reflex/Deletable/Class.hsnew file+17
@@ -0,0 +1,17 @@
1+{-# LANGUAGE FlexibleInstances #-}
2+{-# LANGUAGE FunctionalDependencies #-}
3+{-# LANGUAGE MultiParamTypeClasses #-}
4+{-# LANGUAGE UndecidableInstances #-}
5+module Reflex.Deletable.Class where
6+
7+import Reflex
8+
9+import Control.Monad.Reader
10+import Control.Monad.Trans.Control
11+
12+class (Reflex t, Monad m) => Deletable t m | m -> t where
13+ deletable :: Event t () -> m a -> m a
14+
15+instance Deletable t m => Deletable t (ReaderT r m) where
16+ {-# INLINABLE deletable #-}
17+ deletable = liftThrough . deletable