lfudacaching-0.1.0.0: lfudacaching.cabal
cabal-version: 3.0
name: lfudacaching
version: 0.1.0.0
synopsis: Pure LFUDA, GDSF, and LFU cache implementations
description:
Pure, immutable cache with three eviction policies:
.
* __LFUDA__ — Least Frequently Used with Dynamic Aging
* __GDSF__ — Greedy Dual-Size Frequency
* __LFU__ — Least Frequently Used
.
All operations are /O(log n)/ in the number of cached entries, backed by a
hash-priority search queue.
category: Data
homepage: https://github.com/philippedev101/lfudacache#readme
bug-reports: https://github.com/philippedev101/lfudacache/issues
author: philippedev101
maintainer: philippedev101@gmail.com
copyright: 2026
license: Apache-2.0
license-file: LICENSE
build-type: Simple
extra-source-files:
README.md
extra-doc-files:
CHANGELOG.md
source-repository head
type: git
location: https://github.com/philippedev101/lfudacache
-- Shared language, extensions, and base dependency
common lang
default-language: GHC2021
default-extensions:
BangPatterns
DataKinds
DefaultSignatures
DeriveAnyClass
DeriveDataTypeable
DeriveFoldable
DeriveFunctor
DeriveGeneric
DeriveTraversable
DerivingVia
DisambiguateRecordFields
DuplicateRecordFields
FunctionalDependencies
GADTs
KindSignatures
LambdaCase
MultiWayIf
NoImplicitPrelude
OverloadedRecordDot
OverloadedStrings
PartialTypeSignatures
PolyKinds
RecordWildCards
RoleAnnotations
UnboxedSums
UnboxedTuples
UnliftedDatatypes
UnliftedNewtypes
ViewPatterns
build-depends:
base >= 4.18 && < 5
-- Strict warnings for development components (not the library)
common dev-warnings
ghc-options:
-Weverything
-- Unavoidable noise
-Wno-missing-import-lists
-Wno-missing-safe-haskell-mode
-Wno-prepositive-qualified-module
-Wno-safe
-Wno-unsafe
-- Promoted to errors
-Werror=deprecations
-Werror=identities
-Werror=incomplete-patterns
-Werror=incomplete-record-updates
-Werror=missing-fields
-Werror=missing-methods
-Werror=ambiguous-fields
-Werror=missing-export-lists
-Werror=missing-local-signatures
-Werror=monomorphism-restriction
-Werror=type-defaults
-Werror=orphans
-Werror=name-shadowing
-Werror=missing-kind-signatures
-Werror=missing-deriving-strategies
-Werror=unticked-promoted-constructors
-Werror=missing-role-annotations
-- foldl' import is redundant on GHC 9.10+ but required on 9.6/9.8
-Wno-unused-imports
-- Cross-module specialisation: unfixable
-Wno-all-missed-specialisations
-Wno-missed-specialisations
library
import: lang
hs-source-dirs: src
ghc-options: -Wall
exposed-modules:
Data.LfudaCache
build-depends:
deepseq >= 1.4 && < 1.7
, hashable >= 1.4 && < 1.6
, psqueues >= 0.2.8 && < 0.3
, ghc-prim >= 0.10 && < 0.14
executable lfuda-demo
import: lang, dev-warnings
hs-source-dirs: app
main-is: Main.hs
build-depends:
lfudacaching
test-suite lfuda-test
import: lang, dev-warnings
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Main.hs
other-modules:
Test.Data.LfudaCache
build-depends:
lfudacaching
, tasty >= 1.5 && < 1.6
, tasty-hunit >= 0.10 && < 0.11
benchmark lfuda-bench
import: lang
type: exitcode-stdio-1.0
hs-source-dirs: bench
main-is: Main.hs
ghc-options: -O2 -rtsopts
build-depends:
lfudacaching
, tasty-bench >= 0.4 && < 0.5