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

-- The name of the package.
name:                stochastic

-- The package version.  See the Haskell package versioning policy (PVP) 
-- for standards guiding when and how versions should be incremented.
-- https://wiki.haskell.org/Package_versioning_policy
-- PVP summary:      +-+------- breaking API changes
--                   | | +----- non-breaking API additions
--                   | | | +--- code changes with no API change
version:             0.1.1.0

-- A short (one-line) description of the package.
synopsis:            Monadic composition of probabilistic functions and sampling.

-- A longer description of the package.
description:         This package allows the user to perform monadic composition of
                     probabilistic functions (i.e. functions that take values 
                     and return distributions over values). These functions
                     can then be sampled from to generate datapoints.

-- URL for the project homepage or repository.
homepage:            http://kevinl.io/posts/2016-08-24-sampling-monad.html

-- The license under which the package is released.
license:             GPL-3

-- The file containing the license text.
license-file:        LICENSE

-- The package author(s).
author:              Kevin Li

-- An email address to which users can send suggestions, bug reports, and 
-- patches.
maintainer:          hackage@mail.kevinl.io

-- A copyright notice.
-- copyright:           

category:            Math

build-type:          Simple

-- Extra files to be distributed with the package, such as examples or a 
-- README.
extra-source-files:  ChangeLog.md

-- Constraint on the version of Cabal needed to build this package.
cabal-version:       >=1.10


library
  -- Modules exported by the library.
  exposed-modules:     Data.Stochastic
                       -- Data.Stochastic.Chart
                       Data.Stochastic.Types
                       Data.Stochastic.Internal
  
  -- Modules included in this library but not exported.
  -- other-modules:       
  
  -- LANGUAGE extensions used by modules in this package.
  -- other-extensions:    
  
  -- Other library packages from which modules are imported.
  build-depends:       base >=4.9 && <4.10,
                       -- Chart >=1.8 && <1.9,
                       -- Chart-cairo >=1.8 && <1.9,
                       containers >= 0.5 && <0.6,
                       random >=1.1 && <2,
                       mtl >=2.2 && <2.3
  
  -- Directories containing source files.
  hs-source-dirs:      src
  
  -- Base language which the package is written in.
  default-language:    Haskell2010

  -- | Options to pass to ghc
  -- ghc-options:         -O2

source-repository head
  type:     git
  location: git://github.com/kevin-li-195/stochastic.git

test-suite shadyGambler
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             Test.hs
  build-depends:       base, stochastic, containers
  default-language:    Haskell2010
  -- | Options to pass to ghc
--  ghc-options:         -O2
--                       -threaded
--                       "-with-rtsopts=-N -p -s -h -i0.1"

test-suite monadLaws
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             MonadLaws.hs
  build-depends:       base, stochastic, random
  default-language:    Haskell2010
  -- | Options to pass to ghc
--   ghc-options:         -O2
--                        -threaded
--                        "-with-rtsopts=-N -pa-s -h -i0.1"

test-suite normal3
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             Normal3.hs
  build-depends:       base, stochastic, random
  default-language:    Haskell2010
  -- | Options to pass to ghc
  ghc-options:         -O2
                       -threaded
                       -- "-with-rtsopts=-N -pa -s -h -i0.1"
test-suite normal10
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             Normal10.hs
  build-depends:       base, stochastic, random
  default-language:    Haskell2010
  -- | Options to pass to ghc
  ghc-options:         -O2
                       -threaded
                       -- "-with-rtsopts=-N -pa -s -h -i0.1"

test-suite chart
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             ChartTest.hs
  build-depends:       base, stochastic, random, Chart-cairo, Chart, containers, mtl
  default-language:    Haskell2010
  -- | Options to pass to ghc
  ghc-options:         -O2
                       -threaded
test-suite coolCharts
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             CoolCharts.hs
  build-depends:       base, stochastic, random, Chart-cairo, Chart, containers, mtl
  default-language:    Haskell2010
  -- | Options to pass to ghc
  ghc-options:         -O2
                       -threaded

test-suite swindler
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             Swindler.hs
  build-depends:       base, stochastic, containers, random
  default-language:    Haskell2010
  -- | Options to pass to ghc
  ghc-options:         -O2
                       -threaded

test-suite montyHall
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             MontyHall.hs
  build-depends:       base, stochastic, containers, random, mtl
  default-language:    Haskell2010
  -- | Options to pass to ghc
  ghc-options:         -O2
                       -threaded

test-suite contrivedGambler
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             ContrivedGambler.hs
  build-depends:       base, stochastic, random, Chart-cairo, Chart, containers, mtl
  default-language:    Haskell2010
  -- | Options to pass to ghc
  ghc-options:         -O2
                       -threaded

test-suite beta
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             Beta.hs
  build-depends:       base, stochastic, random, Chart-cairo, Chart, containers, mtl
  default-language:    Haskell2010