GLFW 0.5.2.2 → 0.5.2.3
raw patch · 3 files changed
+36/−8 lines, 3 filessetup-changed
Files
- Changelog.txt +12/−0
- GLFW.cabal +1/−1
- Setup.hs +23/−7
Changelog.txt view
@@ -1,3 +1,15 @@+Sun Jul 5 23:49:09 PDT 2015 paul@thev.net+ * Bump version to 0.5.2.3++Sun Jul 5 23:45:09 PDT 2015 paul@thev.net+ * Backward compatability fix to work with GHC 7.8.4++Tue Jun 23 11:52:53 PDT 2015 plcplc@gmail.com+ * Update for ghc 7.10.1+ + Specifically adressing the change that we now have "class (Applicative m) => Monad m" in base.+ + Tue Aug 5 15:45:35 PDT 2014 paul@thev.net * Bump version to 0.5.2.2
GLFW.cabal view
@@ -1,5 +1,5 @@ name: GLFW-version: 0.5.2.2+version: 0.5.2.3 homepage: http://haskell.org/haskellwiki/GLFW maintainer: Paul H. Liu <paul@thev.net> cabal-version: >= 1.12
Setup.hs view
@@ -19,6 +19,7 @@ import Data.Maybe (fromJust) import Foreign (sizeOf) import Control.Monad (when)+import Control.Applicative --import Control.Monad.State --import Control.Monad.Trans.Class (lift) @@ -232,23 +233,38 @@ -- Since we cannot specify that only Setup.hs depends on mtl, we include StateT here. newtype StateT s m a = StateT { runStateT :: s -> m (a,s) }-execStateT m s = fmap snd $ runStateT m s +execStateT m s = fmap snd $ runStateT m s+ class (Monad m) => MonadState s m | m -> s where get :: m s- put :: s -> m () -class MonadTrans t where + put :: s -> m ()++class MonadTrans t where lift :: Monad m => m a -> t m a modify f = get >>= put . f++instance (Functor m) => Functor (StateT s m) where+ fmap f m = StateT $ fmap (\(x, s) -> (f x, s)) . runStateT m++instance (Functor m, Monad m) => Applicative (StateT s m) where+ pure a = StateT $ \s -> return (a, s)+ f <*> x = StateT $ \s -> do+ ~(f', s') <- runStateT f s+ ~(x', s'') <- runStateT x s'+ return (f' x', s'')+ instance (Monad m) => Monad (StateT s m) where- return a = StateT $ \s -> return (a, s)+ return = return m >>= k = StateT $ \s -> do- ~(a, s') <- runStateT m s + ~(a, s') <- runStateT m s runStateT (k a) s'- fail str = StateT $ \_ -> fail str + fail str = StateT $ \_ -> fail str+ instance MonadTrans (StateT s) where lift m = StateT $ \s -> do a <- m return (a, s)+ instance (Monad m) => MonadState s (StateT s m) where- get = StateT $ \s -> return (s, s) + get = StateT $ \s -> return (s, s) put s = StateT $ \_ -> return ((), s)