Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions Diff-liquidhaskell/Diff-liquidhaskell.cabal
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
cabal-version: 2.4
name: Diff-liquidhaskell
version: 0.1.0.0
synopsis: Liquid Haskell static checks for the Diff package
synopsis: LiquidHaskell static checks for the Diff package
description:
Provides a test suite whose build executes Diff's Liquid Haskell refinement type
Provides a test suite whose build executes Diff's LiquidHaskell refinement type
annotation checks.
Exists as a separate package to break the cyclic dependency:
Diff -> liquidhaskell -> liquidhaskell-boot -> Diff.
license: BSD-3-Clause
build-type: Simple

tested-with: GHC == 9.14.1

library
default-language: Haskell2010
-- Re-use the main Diff source tree so Liquid Haskell checks the real code.
-- Re-use the main Diff source tree so LiquidHaskell checks the real code.
hs-source-dirs: ../src
-- No modules are exposed because this package is intended
-- for checking the build only.
Expand Down
12 changes: 6 additions & 6 deletions Diff.cabal
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Cabal-Version: 1.18
Cabal-Version: 3.14
name: Diff
version: 1.0.2
synopsis: Diff algorithm in pure Haskell
Expand All @@ -8,12 +8,14 @@ description: Implementation of the standard diff algorithm in Haskell.
Space complexity is O(D^2). Includes utilities for pretty printing.
category: Algorithms
homepage: https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927
license: BSD3
license: BSD-3-Clause
license-file: LICENSE
author: Sterling Clover
maintainer: David Fox <dsf@seereason.com>
Build-Type: Simple
extra-doc-files: README.md
build-Type: Simple
extra-doc-files: README.md, CHANGELOG.md
extra-files: ./Diff-liquidhaskell/Diff-liquidhaskell.cabal
bug-reports: https://github.com/seereason/Diff/issues

tested-with:
GHC == 9.14.1
Expand All @@ -29,8 +31,6 @@ tested-with:
GHC == 8.6.5
GHC == 8.4.4

extra-doc-files: CHANGELOG.md

library
default-language: Haskell2010
build-depends:
Expand Down
14 changes: 10 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ Benchmark with
cabal bench
```

### Checking Diff with Liquid Haskell
### Checking Diff with LiquidHaskell

The Diff source code can we checked with [Liquid Haskell](https://ucsd-progsys.github.io/liquidhaskell/).
The Diff source code can we checked with [LiquidHaskell](https://ucsd-progsys.github.io/liquidhaskell/).

Liquid Haskell requires `ghc` version 9.14.1, and an SMT solver. We have tested
LiquidHaskell requires `ghc` version 9.14.1, and an SMT solver. We have tested
the checks with the [Z3](https://github.com/Z3Prover/z3) SMT solver (versions 4.16,
and 4.15.1).

Expand All @@ -44,4 +44,10 @@ flowchart LR
Diff --> liquidhaskell --> liquidhaskell-boot --> Diff
```

Contributions that update the Liquid Haskell checks are appreciated but not required at this point.
Contributions that update the LiquidHaskell checks are appreciated but not required at this point.

### Acknowledgments

The LiquidHaskell static checks were designed and implemented with the support of
[Tweag](https://www.tweag.io/), a part of [Modus Create](https://www.moduscreate.com/).
Learn more in this [blog post](https://www.tweag.io/blog/2026-06-11-diff-package-static-checks/).
2 changes: 1 addition & 1 deletion src/Data/Algorithm/Diff/Refinement.hs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
-- | Refinement type aliases for 'PolyDiff', related predicates and (lifted) utility functions.
-- The contents of this module are intended for use in Liquid Haskell specifications;
-- The contents of this module are intended for use in LiquidHaskell specifications;
-- importing this module can result in unused import warnings in GHC,
-- which can be suppressed with @-Wno-unused-imports@.
module Data.Algorithm.Diff.Refinement where
Expand Down
Loading