← All packages

hashable1.5.1.0

A class for types that can be converted to a hash value

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"
    }
  ]
}

Import a package

Enter a package name and an exact version from Hackage. The site contains imported versions only.