[ bsd3, library, program, unclassified ] [ Propose Tags ]


[Index] [Quick Jump]


Manual Flags


Include the diff implementation from the Diff package


Use the diff implementation from the "uni-util" package (buggy). This causes LGPL code to be included.


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],
Change log
Dependencies base (>=4.7 && <5), containers, deepseq, exceptions, myers-diff, primitive, QuickCheck, quickcheck-instances, string-interpolate, text, text-rope, vector [details]
License BSD-3-Clause
Copyright 2023 Tom McLaughlin
Author Tom McLaughlin
Home page
Bug tracker
Source repo head: git clone
Uploaded by thomasjm at 2023-03-30T23:56:03Z
Distributions NixOS:, Stackage:
Executables myers-diff
Downloads 83 total (6 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2023-03-31 [all 1 reports]

Readme for myers-diff-

[back to package description]

Welcome to myers-diff Hackage myers-diff

This is a fast Haskell implementation of the Myers text diff algorithm1. It is heavily inspired by the Python version in this post, and should have the same O(min(len(a), len(b))) space complexity. (By contrast, the Diff package advertises O(ab) space complexity.) The implementation uses unboxed mutable vectors for performance.

This repo also can also build a couple other versions for benchmarking comparison, gated behind flags.

  • -funi_myers will build the version from the uni-util package.
  • -fdiff_myers will use the Diff package.

E. Myers (1986). "An O(ND) Difference Algorithm and Its Variations". Algorithmica. 1 (2): 251–266. CiteSeerX doi:10.1007/BF01840446. S2CID 6996809.