quickspec/quickspec.cabal
2023-09-21 18:18:25 +02:00

117 lines
3.5 KiB
Plaintext

Name: quickspec
Version: 2.2
Cabal-version: >= 1.10
Build-type: Simple
Homepage: https://github.com/nick8325/quickspec
Author: Nick Smallbone
Maintainer: nicsma@chalmers.se
License: BSD3
License-file: LICENSE
Copyright: 2009-2019 Nick Smallbone
Category: Testing
Synopsis: Equational laws for free!
Description:
QuickSpec takes your Haskell code and, as if by magic, discovers laws
about it. You give QuickSpec a collection of Haskell functions;
QuickSpec tests your functions with QuickCheck and prints out laws which
seem to hold.
.
For example, give QuickSpec the functions @reverse@, @++@ and @[]@, and
it will find six laws:
.
> reverse [] == []
> xs ++ [] == xs
> [] ++ xs == xs
> reverse (reverse xs) == xs
> (xs ++ ys) ++ zs == xs ++ (ys ++ zs)
> reverse xs ++ reverse ys == reverse (ys ++ xs)
.
QuickSpec can find equational laws as well as conditional equations. All
you need to supply are the functions to test, as well as @Ord@ and
@Arbitrary@ instances for QuickSpec to use in testing; the rest is
automatic.
.
For information on how to use QuickSpec, see the documentation in the main
module, "QuickSpec". You can also look in the
@<https://github.com/nick8325/quickspec/tree/master/examples examples>@
directory, for example at
@<https://github.com/nick8325/quickspec/tree/master/examples/Lists.hs Lists.hs>@,
@<https://github.com/nick8325/quickspec/tree/master/examples/IntSet.hs IntSet.hs>@, or
@<https://github.com/nick8325/quickspec/tree/master/examples/Parsing.hs Parsing.hs>@.
To read about how
QuickSpec works, see our paper,
<http://www.cse.chalmers.se/~nicsma/papers/quickspec2.pdf Quick specifications for the busy programmer>.
Extra-source-files:
README.md
examples/Arith.hs
examples/Bools.hs
examples/Composition.hs
examples/Curry.hs
examples/Geometry.hs
examples/HugeLists.hs
examples/IntSet.hs
examples/ListMonad.hs
examples/Lists.hs
examples/Octonions.hs
examples/Parsing.hs
examples/PrettyPrinting.hs
examples/PrettyPrintingModel.hs
examples/Regex.hs
examples/Sorted.hs
examples/Zip.hs
source-repository head
type: git
location: git://github.com/nick8325/quickspec.git
branch: master
library
default-language: Haskell2010
ghc-options: -W
hs-source-dirs: src
Exposed-modules:
QuickSpec
QuickSpec.Internal
QuickSpec.Internal.Explore
QuickSpec.Internal.Explore.Conditionals
QuickSpec.Internal.Explore.Polymorphic
QuickSpec.Internal.Explore.Schemas
QuickSpec.Internal.Explore.Terms
QuickSpec.Internal.Haskell
QuickSpec.Internal.Haskell.Resolve
QuickSpec.Internal.Parse
QuickSpec.Internal.Prop
QuickSpec.Internal.Pruning
QuickSpec.Internal.Pruning.Background
QuickSpec.Internal.Pruning.Twee
QuickSpec.Internal.Pruning.Types
QuickSpec.Internal.Pruning.UntypedTwee
QuickSpec.Internal.Pruning.PartialApplication
QuickSpec.Internal.Term
QuickSpec.Internal.Terminal
QuickSpec.Internal.Testing
QuickSpec.Internal.Testing.DecisionTree
QuickSpec.Internal.Testing.QuickCheck
QuickSpec.Internal.Type
QuickSpec.Internal.Utils
Build-depends:
QuickCheck >= 2.14.2,
quickcheck-instances >= 0.3.16,
base >= 4.7 && < 5,
constraints,
containers,
data-lens-light >= 0.1.1,
dlist,
random,
spoon,
template-haskell,
transformers,
twee-lib,
uglymemo