creditmonad-1.1.0: creditmonad.cabal
cabal-version: 2.2
-- This file has been generated from package.yaml by hpack version 0.38.1.
--
-- see: https://github.com/sol/hpack
name: creditmonad
version: 1.1.0
synopsis: Reasoning about amortized time complexity
description: Persistent data structures are ubiquitous in functional
programming languages and their designers frequently have to
reason about amortized time complexity. But proving amortized
bounds is difficult in a persistent setting, and pen-and-paper
proofs give little assurance of correctness, while a full
mechanization in a proof assistant can be too involved for the
casual user. This package defines a domain specific
language for testing the amortized time complexity of
persistent data structures using QuickCheck. The DSL can
give strong evidence of correctness, while imposing low
overhead on the user. The package includes implementations
and tests of all lazy data structures given in Okasaki's book.
See the paper "Lightweight Testing of Persistent Amortized Time
Complexity in the Credit Monad" (2025) for a detailed description.
category: Development
homepage: https://github.com/anfelor/creditmonad#readme
bug-reports: https://github.com/anfelor/creditmonad/issues
author: Anton Lorenzen <anton.lorenzen@ed.ac.uk>
maintainer: Anton Lorenzen <anton.lorenzen@ed.ac.uk>
license: BSD-3-Clause
build-type: Simple
extra-doc-files:
CHANGELOG.md
source-repository head
type: git
location: https://github.com/anfelor/creditmonad
library
exposed-modules:
Control.Monad.Credit
Test.Credit
Test.Credit.Deque.Bankers
Test.Credit.Deque.Base
Test.Credit.Deque.Catenable
Test.Credit.Deque.ImplicitCat
Test.Credit.Deque.Realtime
Test.Credit.Deque.SimpleCat
Test.Credit.Deque.Streams
Test.Credit.Finger
Test.Credit.Heap.Base
Test.Credit.Heap.Binomial
Test.Credit.Heap.LazyPairing
Test.Credit.Heap.Pairing
Test.Credit.Heap.Scheduled
Test.Credit.Queue.Bankers
Test.Credit.Queue.Base
Test.Credit.Queue.Batched
Test.Credit.Queue.Bootstrapped
Test.Credit.Queue.Implicit
Test.Credit.Queue.Physicists
Test.Credit.Queue.Realtime
Test.Credit.Queue.Streams
Test.Credit.RandomAccess.Base
Test.Credit.RandomAccess.Binary
Test.Credit.RandomAccess.Zeroless
Test.Credit.Sortable.Base
Test.Credit.Sortable.MergeSort
Test.Credit.Sortable.Scheduled
other-modules:
Control.Monad.Credit.Base
Control.Monad.Credit.CreditM
Control.Monad.Credit.CounterM
hs-source-dirs:
src
ghc-options: -Wall -Wno-name-shadowing -Wno-unused-matches
build-depends:
QuickCheck >=2.14 && <3
, STMonadTrans ==0.4.*
, base >=4.13 && <5
, containers >=0.6 && <1.7
, mtl ==2.3.*
, prettyprinter ==1.7.*
default-language: GHC2021
executable creditmonad
main-is: Main.hs
other-modules:
Implicit
Intro
hs-source-dirs:
app
ghc-options: -Wall -Wno-name-shadowing -Wno-unused-matches -O2 -fworker-wrapper-cbv -threaded -rtsopts
build-depends:
QuickCheck >=2.14 && <3
, STMonadTrans ==0.4.*
, base >=4.13 && <5
, containers >=0.6 && <1.7
, creditmonad
, mtl ==2.3.*
, prettyprinter ==1.7.*
, unliftio ==0.2.*
default-language: GHC2021