Monatron-IO (empty) → 1.0
raw patch · 5 files changed
+139/−0 lines, 5 filesdep +Monatrondep +basedep +transformerssetup-changed
Dependencies added: Monatron, base, transformers
Files
- Control/Monatron/IO.hs +26/−0
- Control/Monatron/Zipper/IO.hs +17/−0
- LICENSE +30/−0
- Monatron-IO.cabal +64/−0
- Setup.hs +2/−0
+ Control/Monatron/IO.hs view
@@ -0,0 +1,26 @@+-- | Instances of the 'MonadIO' class for 'StateT', 'WriterT', 'ReaderT', 'ExcT',+-- 'ContT', and 'ListT'.+--+-- Re-exports "Control.Monad.IO.Class" for convenience.+module Control.Monatron.IO (module Control.Monad.IO.Class) where++import Control.Monatron.Monatron (MonadT(..), Monoid, StateT, WriterT, ReaderT, ExcT, ContT, ListT)+import Control.Monad.IO.Class++instance MonadIO m => MonadIO (StateT z m) where+ liftIO = lift . liftIO++instance (MonadIO m, Monoid z) => MonadIO (WriterT z m) where+ liftIO = lift . liftIO++instance MonadIO m => MonadIO (ReaderT z m) where+ liftIO = lift . liftIO++instance MonadIO m => MonadIO (ExcT z m) where+ liftIO = lift . liftIO++instance MonadIO m => MonadIO (ContT r m) where+ liftIO = lift . liftIO++instance MonadIO m => MonadIO (ListT m) where+ liftIO = lift . liftIO
+ Control/Monatron/Zipper/IO.hs view
@@ -0,0 +1,17 @@+{-# LANGUAGE TypeOperators, FlexibleContexts #-}++-- | An instance of the 'MonadIO' class for a zipper:+--+-- @+-- instance ('MonadIO' (t2 m), 'MonadT' t1, 'MonadT' t2, 'Monad' m) => 'MonadIO' ((t1 ':>' t2) m)+-- @+--+-- Re-exports "Control.Monad.IO.Class" for convenience.+module Control.Monatron.Zipper.IO (module Control.Monad.IO.Class) where++import Control.Monatron.Monatron (MonadT(..), Monad)+import Control.Monatron.Zipper ((:>), zipper)+import Control.Monad.IO.Class++instance (MonadIO (t2 m), MonadT t1, MonadT t2, Monad m) => MonadIO ((t1 :> t2) m) where+ liftIO = zipper . lift . liftIO
+ LICENSE view
@@ -0,0 +1,30 @@+Copyright (c)2012, Tobias Brandt++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++ * Redistributions of source code must retain the above copyright+ notice, this list of conditions and the following disclaimer.++ * Redistributions in binary form must reproduce the above+ copyright notice, this list of conditions and the following+ disclaimer in the documentation and/or other materials provided+ with the distribution.++ * Neither the name of Tobias Brandt nor the names of other+ contributors may be used to endorse or promote products derived+ from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ Monatron-IO.cabal view
@@ -0,0 +1,64 @@+-- Monatron-IO.cabal auto-generated by cabal init. For additional+-- options, see+-- http://www.haskell.org/cabal/release/cabal-latest/doc/users-guide/authors.html#pkg-descr.+-- The name of the package.+Name: Monatron-IO++-- The package version. See the Haskell package versioning policy+-- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for+-- standards guiding when and how versions should be incremented.+Version: 1.0++-- A short (one-line) description of the package.+Synopsis: MonadIO instances for the Monatron transformers.++-- A longer description of the package.+Description: This package defines instances of the + 'Control.Monad.IO.Class.MonadIO' class (see "Control.Monad.IO.Class") + for all the monad transformers in "Control.Monatron.Transformer"+ (except 'Control.Monadtron.Transformer.StepT') and for the + zipper type (':>') in "Control.Monad.Zipper".++-- The license under which the package is released.+License: BSD3++-- The file containing the license text.+License-file: LICENSE++-- The package author(s).+Author: Tobias Brandt++-- An email address to which users can send suggestions, bug reports,+-- and patches.+Maintainer: tob.brandt@gmail.com++Homepage: https://github.com/kreuzschlitzschraubenzieher/Monatron-IO++-- A copyright notice.+-- Copyright: ++Category: Control++Build-type: Simple++-- Extra files to be distributed with the package, such as examples or+-- a README.+-- Extra-source-files: ++-- Constraint on the version of Cabal needed to build this package.+Cabal-version: >=1.6+++Library+ -- Modules exported by the library.+ Exposed-modules: Control.Monatron.IO, Control.Monatron.Zipper.IO+ + -- Packages needed in order to build this package.+ Build-depends: base>=2 && <5, Monatron==0.3.*, transformers==0.3.*+ + -- Modules not exported by this package.+ -- Other-modules: + + -- Extra tools (e.g. alex, hsc2hs, ...) needed to build the source.+ -- Build-tools: +
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain