-- Initial distributed-process-lifted.cabal generated by cabal init.  For 
-- further documentation, see http://haskell.org/cabal/users-guide/

name:                distributed-process-lifted
version:             0.1.0.0
synopsis:            monad-control style typeclass and transformer instances for Process monad.

description:         This package provides typeclasses and functions for lifting functions and control operations (such as spawnLocal) from the @Process@ monad 
                     into transformer stacks based on the Process monad. It uses
                     <http://hackage.haskell.org/package/monad-control-1.0.0.1/docs/Control-Monad-Trans-Control.html#t:MonadTransControl MonadTransControl> 
                     and a new typeclass 'Control.Distributed.Process.Lifted.Class.MonadProcessBase' which plays the same role as  
                     <http://hackage.haskell.org/package/monad-control-1.0.0.1/docs/Control-Monad-Trans-Control.html#t:MonadBaseControl MonadBaseControl>.  
                     Instances are provided for all the <http://hackage.haskell.org/package/transformers transformers> types - so stacks based on any of these 
                     (e.g. @ReaderT Config Process a@) can be used seamlessly.
                     .
                     The Control.Distributed.Process.Lifted module exports all the same symbols as found in 
                     Control.Distributed.Process, but they are all generalized. 
                     Where appropriate it re-exports the more general functions from lifted-base (e.g. catch) rather than the versions re-implemented for @Process@.
homepage:            https://github.com/jeremyjh/distributed-process-lifted
license:             BSD3
license-file:        LICENSE
author:              Jeremy Huffman
maintainer:          jeremy@jeremyhuffman.com
-- copyright:           
category:            Control, Cloud Haskell
build-type:          Simple
-- extra-source-files:  
cabal-version:       >=1.10

source-repository head
  type: git
  location: git://github.com/jeremyjh/distributed-process-lifted.git

library
  exposed-modules:     Control.Distributed.Process.Lifted
                     , Control.Distributed.Process.Lifted.Class
                     , Control.Distributed.Process.Node.Lifted
  -- other-modules:       
  -- other-extensions:    
  build-depends:       base < 5
                     , distributed-process >= 0.5.1 && < 0.6
                     , distributed-process-monad-control >= 0.5 && < 0.6
                     , network-transport >= 0.2 && < 0.5
                     , lifted-base  >= 0.2 && < 0.3
                     , transformers >= 0.3 && < 0.5
                     , transformers-base >= 0.4.1 && <= 0.5.0 
                     , monad-control >= 0.3 && < 1.1
                     , mtl >= 2.0 && < 2.3
                     , deepseq >= 1.2 && < 1.5
  hs-source-dirs:      src
  default-language:    Haskell2010
  ghc-options:         -Wall

test-suite testlifted
  type:              exitcode-stdio-1.0
  main-is:           runTCP.hs
  default-extensions: DeriveDataTypeable, ScopedTypeVariables, RecordWildCards, GeneralizedNewtypeDeriving
  other-modules:     Control.Distributed.Process.Lifted.Tests
                   , Network.Transport.Test
  build-depends:     base >= 4.4 && < 5,
                     mtl,
                     network,  
                     transformers,
                     distributed-process,
                     distributed-process-lifted,
                     binary, 
                     network-transport, 
                     lifted-base,
                     network-transport-tcp,
                     test-framework >= 0.6 && < 0.9,
                     test-framework-hunit >= 0.3 && < 0.4,
                     rematch >= 0.2 && < 0.3,
                     HUnit
  ghc-options:       -Wall -eventlog -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind
  hs-source-dirs:    test
  default-language:    Haskell2010