Open the imported Cabal file ↗
- author
- Milan Straka <fox@ucw.cz> Johan Tibell <johan.tibell@gmail.com>
- bug-reports
- https://github.com/haskell-unordered-containers/hashable/issues
- build-type
- Simple
- cabal-version
- 2.2
- category
- Data
- extra-source-files
- CHANGES.md include/HsHashable.h include/HsXXHash.h README.md xxHash-0.8.3/xxhash.h
- homepage
- http://github.com/haskell-unordered-containers/hashable
- license
- BSD-3-Clause
- license-file
- LICENSE
- maintainer
- Oleg Grenrus <oleg.grenrus@iki.fi>
- name
- hashable
- stability
- Provisional
- synopsis
- A class for types that can be converted to a hash value
- tested-with
- GHC ==9.6.5 || ==9.8.2 || ==9.8.3 || ==9.10.2 || ==9.12.2 || ==9.14.1
- version
- 1.5.1.0
Show the complete metadata as JSON
{
"schemaVersion": 1,
"name": "hashable",
"version": "1.5.1.0",
"cabalVersion": "2.2",
"buildType": "Simple",
"fields": {
"author": [
"Milan Straka <fox@ucw.cz>\nJohan Tibell <johan.tibell@gmail.com>"
],
"bug-reports": [
"https://github.com/haskell-unordered-containers/hashable/issues"
],
"build-type": [
"Simple"
],
"cabal-version": [
"2.2"
],
"category": [
"Data"
],
"description": [
"This package defines a class, 'Hashable', for types that can be converted to a hash value.\nThis class exists for the benefit of hashing-based data structures.\nThe package provides instances for basic types and a way to combine hash values.\n.\n'Hashable' is intended exclusively for use in in-memory data structures.\n.\n'Hashable' does /not/ have a fixed standard.\nThis allows it to improve over time.\n.\nBecause it does not have a fixed standard, different computers or computers on different versions of the code will observe different hash values.\nAs such, 'hashable' is not recommended for use other than in-memory datastructures.\nSpecifically, 'hashable' is not intended for network use or in applications which persist hashed values.\nFor stable hashing use named hashes: sha256, crc32, xxhash etc."
],
"extra-source-files": [
"CHANGES.md\ninclude/HsHashable.h\ninclude/HsXXHash.h\nREADME.md\nxxHash-0.8.3/xxhash.h"
],
"homepage": [
"http://github.com/haskell-unordered-containers/hashable"
],
"license": [
"BSD-3-Clause"
],
"license-file": [
"LICENSE"
],
"maintainer": [
"Oleg Grenrus <oleg.grenrus@iki.fi>"
],
"name": [
"hashable"
],
"stability": [
"Provisional"
],
"synopsis": [
"A class for types that can be converted to a hash value"
],
"tested-with": [
"GHC ==9.6.5 || ==9.8.2 || ==9.8.3 || ==9.10.2 || ==9.12.2 || ==9.14.1"
],
"version": [
"1.5.1.0"
]
},
"components": [
{
"kind": "library",
"name": "main",
"tree": {
"data": {
"buildable": null,
"exposedModules": [
"Data.Hashable",
"Data.Hashable.Generic",
"Data.Hashable.Lifted"
],
"otherModules": [
"Data.Hashable.Class",
"Data.Hashable.FFI",
"Data.Hashable.Generic.Instances",
"Data.Hashable.Imports",
"Data.Hashable.LowLevel",
"Data.Hashable.Mix",
"Data.Hashable.XXH3"
],
"dependencies": [
{
"package": "base",
"range": ">=4.18.0.0 && <4.23",
"libraries": [
"main"
]
},
{
"package": "bytestring",
"range": ">=0.11.5.3 && <0.13",
"libraries": [
"main"
]
},
{
"package": "containers",
"range": ">=0.6.7 && <0.9",
"libraries": [
"main"
]
},
{
"package": "deepseq",
"range": ">=1.4.8.1 && <1.6",
"libraries": [
"main"
]
},
{
"package": "text",
"range": ">=2.0.2 && <2.2",
"libraries": [
"main"
]
},
{
"package": "os-string",
"range": ">=2.0.2 && <2.1",
"libraries": [
"main"
]
},
{
"package": "filepath",
"range": ">=1.4.200.1 && <1.6",
"libraries": [
"main"
]
}
],
"fields": {}
},
"branches": [
{
"condition": {
"compiler": "ghc",
"range": "<9.8"
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "ghc-prim",
"range": "-any",
"libraries": [
"main"
]
}
],
"fields": {}
},
"branches": []
},
"else": null
},
{
"condition": {
"and": [
{
"flag": "random-initial-seed"
},
{
"compiler": "ghc",
"range": "-any"
}
]
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [],
"fields": {}
},
"branches": [
{
"condition": {
"os": "windows"
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [],
"fields": {}
},
"branches": []
},
"else": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [],
"fields": {}
},
"branches": []
}
}
]
},
"else": null
},
{
"condition": {
"flag": "arch-native"
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [],
"fields": {}
},
"branches": []
},
"else": null
},
{
"condition": {
"compiler": "ghc",
"range": ">=9.0"
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [],
"fields": {}
},
"branches": []
},
"else": null
}
]
}
},
{
"kind": "test-suite",
"name": "hashable-tests",
"tree": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [
"Properties",
"Regress"
],
"dependencies": [
{
"package": "base",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "bytestring",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "filepath",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "ghc-prim",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "hashable",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "QuickCheck",
"range": ">=2.15",
"libraries": [
"main"
]
},
{
"package": "tasty",
"range": "^>=1.5",
"libraries": [
"main"
]
},
{
"package": "tasty-hunit",
"range": "^>=0.10.1",
"libraries": [
"main"
]
},
{
"package": "tasty-quickcheck",
"range": "^>=0.10.3 || ^>=0.11",
"libraries": [
"main"
]
},
{
"package": "text",
"range": ">=0.11.0.5",
"libraries": [
"main"
]
}
],
"fields": {
"type": [
"exitcode-stdio-1.0"
]
}
},
"branches": [
{
"condition": {
"compiler": "ghc",
"range": ">=9.2"
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "os-string",
"range": "-any",
"libraries": [
"main"
]
}
],
"fields": {}
},
"branches": []
},
"else": null
},
{
"condition": {
"not": {
"os": "windows"
}
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [
"Regress.Mmap"
],
"dependencies": [],
"fields": {}
},
"branches": []
},
"else": null
}
]
}
},
{
"kind": "test-suite",
"name": "xxhash-tests",
"tree": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [
"Data.Hashable.FFI",
"Data.Hashable.XXH3"
],
"dependencies": [
{
"package": "base",
"range": "<5",
"libraries": [
"main"
]
},
{
"package": "bytestring",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "primitive",
"range": "^>=0.9.0.0",
"libraries": [
"main"
]
},
{
"package": "tasty",
"range": "^>=1.5",
"libraries": [
"main"
]
},
{
"package": "tasty-hunit",
"range": "^>=0.10.1",
"libraries": [
"main"
]
},
{
"package": "tasty-quickcheck",
"range": "^>=0.10.3 || ^>=0.11",
"libraries": [
"main"
]
}
],
"fields": {
"type": [
"exitcode-stdio-1.0"
]
}
},
"branches": [
{
"condition": {
"not": {
"compiler": "ghc",
"range": ">=9.4"
}
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "data-array-byte",
"range": ">=0.1.0.1 && <0.2",
"libraries": [
"main"
]
}
],
"fields": {}
},
"branches": []
},
"else": null
}
]
}
},
{
"kind": "test-suite",
"name": "hashable-examples",
"tree": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "base",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "ghc-prim",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "hashable",
"range": "-any",
"libraries": [
"main"
]
}
],
"fields": {
"type": [
"exitcode-stdio-1.0"
]
}
},
"branches": []
}
}
],
"setupDependencies": [],
"flags": [
{
"name": "arch-native",
"default": false,
"manual": true,
"description": "Use @-march=native@ when compiling C sources.\nPortable implementation is 15-50% slower.\nConsider enabling this flag if hashing performance is important."
},
{
"name": "random-initial-seed",
"default": false,
"manual": true,
"description": "Randomly initialize the initial seed on each final executable invocation\nThis is useful for catching cases when you rely on (non-existent)\nstability of hashable's hash functions.\nThis is not a security feature."
}
],
"sourceRepositories": [
{
"kind": "head",
"fields": {
"location": [
"https://github.com/haskell-unordered-containers/hashable.git"
],
"type": [
"git"
]
}
}
],
"warnings": [],
"sourceUrl": "https://hackage.haskell.org/package/hashable-1.5.1.0/hashable.cabal",
"sha256": "140fc5adad166f7b527567cbd26ff481e8da4a66bdfc84be3ddf28dbeb66f275",
"importedAt": "2026-10-14T12:46:25.380Z",
"dependencies": [
{
"package": "base",
"range": ">=4.18.0.0 && <4.23",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "bytestring",
"range": ">=0.11.5.3 && <0.13",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "containers",
"range": ">=0.6.7 && <0.9",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "deepseq",
"range": ">=1.4.8.1 && <1.6",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "text",
"range": ">=2.0.2 && <2.2",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "os-string",
"range": ">=2.0.2 && <2.1",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "filepath",
"range": ">=1.4.200.1 && <1.6",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "ghc-prim",
"range": "-any",
"libraries": [
"main"
],
"component": "library:main",
"conditions": [
{
"compiler": "ghc",
"range": "<9.8"
}
]
},
{
"package": "base",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:hashable-tests",
"conditions": []
},
{
"package": "bytestring",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:hashable-tests",
"conditions": []
},
{
"package": "filepath",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:hashable-tests",
"conditions": []
},
{
"package": "ghc-prim",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:hashable-tests",
"conditions": []
},
{
"package": "hashable",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:hashable-tests",
"conditions": []
},
{
"package": "QuickCheck",
"range": ">=2.15",
"libraries": [
"main"
],
"component": "test-suite:hashable-tests",
"conditions": []
},
{
"package": "tasty",
"range": "^>=1.5",
"libraries": [
"main"
],
"component": "test-suite:hashable-tests",
"conditions": []
},
{
"package": "tasty-hunit",
"range": "^>=0.10.1",
"libraries": [
"main"
],
"component": "test-suite:hashable-tests",
"conditions": []
},
{
"package": "tasty-quickcheck",
"range": "^>=0.10.3 || ^>=0.11",
"libraries": [
"main"
],
"component": "test-suite:hashable-tests",
"conditions": []
},
{
"package": "text",
"range": ">=0.11.0.5",
"libraries": [
"main"
],
"component": "test-suite:hashable-tests",
"conditions": []
},
{
"package": "os-string",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:hashable-tests",
"conditions": [
{
"compiler": "ghc",
"range": ">=9.2"
}
]
},
{
"package": "base",
"range": "<5",
"libraries": [
"main"
],
"component": "test-suite:xxhash-tests",
"conditions": []
},
{
"package": "bytestring",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:xxhash-tests",
"conditions": []
},
{
"package": "primitive",
"range": "^>=0.9.0.0",
"libraries": [
"main"
],
"component": "test-suite:xxhash-tests",
"conditions": []
},
{
"package": "tasty",
"range": "^>=1.5",
"libraries": [
"main"
],
"component": "test-suite:xxhash-tests",
"conditions": []
},
{
"package": "tasty-hunit",
"range": "^>=0.10.1",
"libraries": [
"main"
],
"component": "test-suite:xxhash-tests",
"conditions": []
},
{
"package": "tasty-quickcheck",
"range": "^>=0.10.3 || ^>=0.11",
"libraries": [
"main"
],
"component": "test-suite:xxhash-tests",
"conditions": []
},
{
"package": "data-array-byte",
"range": ">=0.1.0.1 && <0.2",
"libraries": [
"main"
],
"component": "test-suite:xxhash-tests",
"conditions": [
{
"not": {
"compiler": "ghc",
"range": ">=9.4"
}
}
]
},
{
"package": "base",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:hashable-examples",
"conditions": []
},
{
"package": "ghc-prim",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:hashable-examples",
"conditions": []
},
{
"package": "hashable",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:hashable-examples",
"conditions": []
}
],
"exposedModules": [
"Data.Hashable",
"Data.Hashable.Generic",
"Data.Hashable.Lifted"
],
"documents": {
"readme": {
"status": "available",
"sha256": "c1ba5e3b0ef43249fd3ad5984b33f5eb992a2e213c98de8b357312ee880a714b",
"error": null,
"checkedAt": "2026-10-14T12:46:26.071Z"
},
"changelog": {
"status": "available",
"sha256": "7c55c086d4603638fa8f01dee968a7a2ed2286df500fcc6b3b0d570165b3062d",
"error": null,
"checkedAt": "2026-10-14T12:46:26.349Z"
}
},
"documentation": {
"id": "30e12c9fe25aae15f3349d728408a0495e0c70131716435e01705d3ea205edb5",
"plan_id": "8a159055cededc6b658834858a0581989454171305d0b2a98139c76f28dc0ffd",
"provenance": "community",
"diagnostics": 6,
"created_at": 1791982835
},
"versions": [
{
"version": "1.5.1.0",
"imported_at": "2026-10-14T12:46:25.380Z"
}
]
}