packages feed

jsaddle 0.5.1.0 → 0.5.1.1

raw patch · 2 files changed

+32/−6 lines, 2 filesdep +ref-tf

Dependencies added: ref-tf

Files

jsaddle.cabal view
@@ -1,5 +1,5 @@ name: jsaddle-version: 0.5.1.0+version: 0.5.1.1 cabal-version: >=1.10 build-type: Simple license: MIT@@ -39,6 +39,7 @@             filepath >=1.4.0.0 && <1.5,             http-types >=0.8.6 && <0.10,             process >=1.2.3.0 && <1.5,+            ref-tf >=0.4.0.1 && <0.5,             stm >=2.4.4 && <2.5,             time >=1.5.0.1 && <1.7,             wai >=3.0.3.0 && <3.3,
src/Language/Javascript/JSaddle/Types.hs view
@@ -1,8 +1,12 @@ {-# LANGUAGE CPP                        #-}-{-# LANGUAGE FlexibleInstances          #-}+#ifdef ghcjs_HOST_OS+{-# LANGUAGE ConstraintKinds            #-}+#else+{-# LANGUAGE TypeFamilies               #-}+{-# LANGUAGE UndecidableInstances       #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE DeriveGeneric              #-}-{-# LANGUAGE ConstraintKinds            #-}+#endif ----------------------------------------------------------------------------- -- -- Module      :  Language.Javascript.JSaddle.Types@@ -46,7 +50,6 @@ #endif ) where -import Control.Monad.Trans.Reader (ReaderT(..)) import Control.Monad.IO.Class (MonadIO(..)) #ifdef ghcjs_HOST_OS import GHCJS.Types@@ -55,15 +58,20 @@ import Data.Word (Word(..)) import GHCJS.Nullable (Nullable(..)) #else+import Control.Monad.Trans.Reader (ReaderT(..))+import Control.Monad.Trans.State.Lazy (StateT(..))+import qualified Control.Monad.Trans.State.Strict as Strict+       (StateT(..)) import Control.Monad.Trans.Class (MonadTrans(..))+import Control.Monad.Fix (MonadFix)+import Control.Monad.Ref (MonadAtomicRef(..), MonadRef(..))+import Control.Concurrent.STM.TVar (TVar) import Data.Int (Int64) import Data.Text (Text) import Data.Time.Clock (UTCTime(..)) import Data.Aeson        (defaultOptions, genericToEncoding, ToJSON(..), FromJSON(..)) import GHC.Generics (Generic)-import Control.Concurrent.STM.TVar (TVar)-import Control.Monad.Fix (MonadFix) #endif  -- | Identifies a JavaScript execution context.@@ -116,6 +124,23 @@ instance MonadJSM m => MonadJSM (ReaderT e m) where     liftJSM' = lift . liftJSM'     {-# INLINE liftJSM' #-}++instance MonadJSM m => MonadJSM (StateT r m) where+    liftJSM' = lift . liftJSM'+    {-# INLINE liftJSM' #-}++instance MonadJSM m => MonadJSM (Strict.StateT r m) where+    liftJSM' = lift . liftJSM'+    {-# INLINE liftJSM' #-}++instance MonadRef JSM where+    type Ref JSM = Ref IO+    newRef = liftIO . newRef+    readRef = liftIO . readRef+    writeRef r = liftIO . writeRef r++instance MonadAtomicRef JSM where+    atomicModifyRef r = liftIO . atomicModifyRef r #endif  -- | The 'liftJSM' is to 'JSM' what 'liftIO' is to 'IO'.