elevator 0.1.1 → 0.1.1.1
raw patch · 2 files changed
+6/−2 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Control.Elevator: instance (GHC.Base.Monad m, Control.Elevator.Tower m) => Control.Elevator.Tower (Control.Monad.Trans.Cont.ContT r m)
- Control.Elevator: instance (GHC.Base.Monad m, Control.Elevator.Tower m) => Control.Elevator.Tower (Control.Monad.Trans.Except.ExceptT e m)
- Control.Elevator: instance (GHC.Base.Monad m, Control.Elevator.Tower m) => Control.Elevator.Tower (Control.Monad.Trans.List.ListT m)
- Control.Elevator: instance (GHC.Base.Monad m, Control.Elevator.Tower m) => Control.Elevator.Tower (Control.Monad.Trans.Maybe.MaybeT m)
- Control.Elevator: instance (GHC.Base.Monad m, Control.Elevator.Tower m) => Control.Elevator.Tower (Control.Monad.Trans.Reader.ReaderT r m)
- Control.Elevator: instance (GHC.Base.Monad m, Control.Elevator.Tower m) => Control.Elevator.Tower (Control.Monad.Trans.State.Lazy.StateT s m)
- Control.Elevator: instance (GHC.Base.Monad m, Control.Elevator.Tower m) => Control.Elevator.Tower (Control.Monad.Trans.State.Strict.StateT s m)
- Control.Elevator: instance (GHC.Base.Monoid w, GHC.Base.Monad m, Control.Elevator.Tower m) => Control.Elevator.Tower (Control.Monad.Trans.Writer.Lazy.WriterT w m)
- Control.Elevator: instance (GHC.Base.Monoid w, GHC.Base.Monad m, Control.Elevator.Tower m) => Control.Elevator.Tower (Control.Monad.Trans.Writer.Strict.WriterT w m)
- Control.Elevator: instance Control.Elevator.Tower ((->) r)
- Control.Elevator: instance Control.Elevator.Tower (Data.Either.Either e)
- Control.Elevator: instance Control.Elevator.Tower (Data.OpenUnion1.Clean.Union u)
- Control.Elevator: instance Control.Elevator.Tower (GHC.ST.ST s)
- Control.Elevator: instance Control.Elevator.Tower Data.Functor.Identity.Identity
- Control.Elevator: instance Control.Elevator.Tower GHC.Base.Maybe
- Control.Elevator: instance Control.Elevator.Tower GHC.Types.IO
- Control.Elevator: instance Control.Elevator.Tower []
+ Control.Elevator: instance (Error e, Monad m, Tower m) => Tower (ErrorT e m)
+ Control.Elevator: instance (Monad m, Tower m) => Tower (ContT r m)
+ Control.Elevator: instance (Monad m, Tower m) => Tower (ListT m)
+ Control.Elevator: instance (Monad m, Tower m) => Tower (MaybeT m)
+ Control.Elevator: instance (Monad m, Tower m) => Tower (ReaderT r m)
+ Control.Elevator: instance (Monad m, Tower m) => Tower (StateT s m)
+ Control.Elevator: instance (Monoid w, Monad m, Tower m) => Tower (WriterT w m)
+ Control.Elevator: instance Tower ((->) r)
+ Control.Elevator: instance Tower (Either e)
+ Control.Elevator: instance Tower (ST s)
+ Control.Elevator: instance Tower (Union u)
+ Control.Elevator: instance Tower IO
+ Control.Elevator: instance Tower Identity
+ Control.Elevator: instance Tower Maybe
+ Control.Elevator: instance Tower []
- Control.Elevator: class Tower f where type family Floors f :: List (* -> *) Floors f = Empty toLoft = exhaust
+ Control.Elevator: class Tower f where type family Floors f :: List (* -> *) type instance Floors f = Empty toLoft = exhaust
Files
- elevator.cabal +1/−1
- src/Control/Elevator.hs +5/−1
elevator.cabal view
@@ -1,5 +1,5 @@ name: elevator -version: 0.1.1 +version: 0.1.1.1 synopsis: Immediately lifts to a desired level description: This package provides 'elevate' function which composes 'lift'-like transformations automatically. homepage: https://github.com/fumieval/elevator
src/Control/Elevator.hs view
@@ -30,6 +30,10 @@ import Data.Monoid import Control.Monad.ST +#ifndef MIN_VERSION_transformers +#define MIN_VERSION_transformers(x,y,z) 1 +#endif + #if MIN_VERSION_transformers(0,4,0) import Control.Monad.Trans.Except #else @@ -146,7 +150,7 @@ ||> lift . toLoft1 #else instance (Error e, Monad m, Tower m) => Tower (ErrorT e m) where - type Floors (ExceptT e m) = Either e + type Floors (ErrorT e m) = Either e :> Floors1 m toLoft = ErrorT . return ||> lift . toLoft1