packages feed

quickspec-0.9.5: quickspec.cabal

Name:                quickspec
Version:             0.9.5
Cabal-version:       >=1.6
Build-type:          Simple

Homepage:            https://github.com/nick8325/quickspec
Author:              Nick Smallbone
Maintainer:          nicsma@chalmers.se

License:             BSD3
License-file:        LICENSE
Copyright:           2009-2013 Nick Smallbone

Category:            Testing

Synopsis:            Equational laws for free
Description:
  QuickSpec automatically finds equational properties of your program.
  .
  Give it an API, i.e. a collection of functions, and it will spit out
  equations about those functions. For example, given @reverse@, @++@
  and @[]@, QuickSpec finds six laws:
  .
  > xs++[] == xs
  > []++xs == xs
  > reverse [] == []
  > (xs++ys)++zs == xs++(ys++zs)
  > reverse (reverse xs) == xs
  > reverse xs++reverse ys == reverse (ys++xs)
  .
  All you have to provide is:
  .
  * Some functions and constants to test. These are the /only/
    functions that will appear in the equations.
  .
  * A collection of variables that can appear in the equations
    (@xs@, @ys@ and @zs@ in the example above).
  .
  * 'Test.QuickCheck.Arbitrary' and 'Data.Typeable.Typeable' instances for the types you want to test.
  .
  Consider this a pre-release. Everything is complete but undocumented
  :) The best place to start is the examples at
  <http://github.com/nick8325/quickspec/tree/master/examples>. There
  is also a paper at
  <http://www.cse.chalmers.se/~nicsma/quickspec.pdf>.
  Everything you need should be in the module "Test.QuickSpec".
  .
  If you want help, email me!

Extra-source-files:
  README
  examples/Arith.hs
  examples/Bools.hs
  examples/Composition.hs
  examples/Heaps.hs
  examples/Lists.hs
  examples/TinyWM.hs
  src/Test/QuickSpec/errors.h

source-repository head
  type:     git
  location: git://github.com/nick8325/quickspec.git
  branch:   master

library
  hs-source-dirs: src
  include-dirs: src/Test/QuickSpec/
  Exposed-modules:
    Test.QuickSpec,
    Test.QuickSpec.Main,
    Test.QuickSpec.Signature,
    Test.QuickSpec.Prelude,
    Test.QuickSpec.Term,
    Test.QuickSpec.Equation,
    Test.QuickSpec.Generate,
    Test.QuickSpec.TestTree,
    Test.QuickSpec.Reasoning.UnionFind,
    Test.QuickSpec.Reasoning.CongruenceClosure,
    Test.QuickSpec.Reasoning.NaiveEquationalReasoning,
    Test.QuickSpec.Reasoning.PartialEquationalReasoning,
    Test.QuickSpec.TestTotality,
    Test.QuickSpec.Utils,
    Test.QuickSpec.Utils.Typeable,
    Test.QuickSpec.Utils.Typed,
    Test.QuickSpec.Utils.TypeMap,
    Test.QuickSpec.Utils.TypeRel,
    Test.QuickSpec.Approximate
  Other-modules:
    -- Dangerous!
    Test.QuickSpec.Utils.MemoValuation

  Build-depends:
    base < 5, containers, transformers, QuickCheck >= 2.7,
    random, spoon >= 0.2, array, ghc-prim, mtl