packages feed

quickspec-2: quickspec.cabal

Name:                quickspec
Version:             2
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-2018 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/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
  ghc-options: -W
  hs-source-dirs: src
  Exposed-modules:
    QuickSpec
    QuickSpec.Explore
    QuickSpec.Explore.Conditionals
    QuickSpec.Explore.PartialApplication
    QuickSpec.Explore.Polymorphic
    QuickSpec.Explore.Schemas
    QuickSpec.Explore.Terms
    QuickSpec.Haskell
    QuickSpec.Haskell.Resolve
    QuickSpec.Prop
    QuickSpec.Pruning
    QuickSpec.Pruning.Background
    QuickSpec.Pruning.Twee
    QuickSpec.Pruning.Types
    QuickSpec.Pruning.UntypedTwee
    QuickSpec.Term
    QuickSpec.Terminal
    QuickSpec.Testing
    QuickSpec.Testing.DecisionTree
    QuickSpec.Testing.QuickCheck
    QuickSpec.Type
    QuickSpec.Utils

  Build-depends:
    QuickCheck >= 2.10,
    base >= 4 && < 5,
    constraints,
    containers,
    data-lens-light >= 0.1.1,
    dlist,
    random,
    reflection,
    template-haskell,
    transformers,
    twee-lib >= 2.1.2,
    uglymemo