Open the imported Cabal file ↗
- author
- C. McCann, Oleg Grenrus
- build-type
- Simple
- cabal-version
- >=1.10
- category
- Data, These
- extra-source-files
- CHANGELOG.md
- homepage
- https://github.com/haskellari/these
- license
- BSD3
- license-file
- LICENSE
- maintainer
- Oleg Grenrus <oleg.grenrus@iki.fi>
- name
- these
- synopsis
- An either-or-both data type.
- tested-with
- GHC ==8.6.5 || ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.8 || ==9.4.8 || ==9.6.6 || ==9.8.4 || ==9.10.1 || ==9.12.4 || ==9.14.1
- version
- 1.2.1
- x-revision
- 3
Show the complete metadata as JSON
{
"schemaVersion": 1,
"name": "these",
"version": "1.2.1",
"cabalVersion": "1.10",
"buildType": "Simple",
"fields": {
"author": [
"C. McCann, Oleg Grenrus"
],
"build-type": [
"Simple"
],
"cabal-version": [
">=1.10"
],
"category": [
"Data, These"
],
"description": [
"This package provides a data type @These a b@ which can hold a value of either\ntype or values of each type. This is usually thought of as an \"inclusive or\"\ntype (contrasting @Either a b@ as \"exclusive or\") or as an \"outer join\" type\n(contrasting @(a, b)@ as \"inner join\").\n.\n@\ndata These a b = This a | That b | These a b\n@\n.\nSince version 1, this package was split into parts:\n.\n* <https://hackage.haskell.org/package/semialign semialign> For @Align@ and @Zip@ type-classes.\n.\n* <https://hackage.haskell.org/package/semialign-indexed semialign-indexed> For @SemialignWithIndex@ class, providing @ialignWith@ and @izipWith@.\n.\n* <https://hackage.haskell.org/package/these-lens these-lens> For lens combinators.\n.\n* <http://hackage.haskell.org/package/monad-chronicle monad-chronicle> For transformers variant of @These@."
],
"extra-source-files": [
"CHANGELOG.md"
],
"homepage": [
"https://github.com/haskellari/these"
],
"license": [
"BSD3"
],
"license-file": [
"LICENSE"
],
"maintainer": [
"Oleg Grenrus <oleg.grenrus@iki.fi>"
],
"name": [
"these"
],
"synopsis": [
"An either-or-both data type."
],
"tested-with": [
"GHC ==8.6.5\n|| ==8.8.4\n|| ==8.10.7\n|| ==9.0.2\n|| ==9.2.8\n|| ==9.4.8\n|| ==9.6.6\n|| ==9.8.4\n|| ==9.10.1\n|| ==9.12.4\n|| ==9.14.1"
],
"version": [
"1.2.1"
],
"x-revision": [
"3"
]
},
"components": [
{
"kind": "library",
"name": "main",
"tree": {
"data": {
"buildable": null,
"exposedModules": [
"Data.Functor.These",
"Data.These",
"Data.These.Combinators"
],
"otherModules": [],
"dependencies": [
{
"package": "base",
"range": ">=4.12.0.0 && <4.23",
"libraries": [
"main"
]
},
{
"package": "binary",
"range": ">=0.8.6.0 && <0.10",
"libraries": [
"main"
]
},
{
"package": "deepseq",
"range": ">=1.4.4.0 && <1.6",
"libraries": [
"main"
]
},
{
"package": "assoc",
"range": ">=1.1.1 && <1.2",
"libraries": [
"main"
]
},
{
"package": "hashable",
"range": ">=1.4.4.0 && <1.6",
"libraries": [
"main"
]
}
],
"fields": {
"x-docspec-extra-packages": [
"lens"
]
}
},
"branches": [
{
"condition": {
"not": {
"compiler": "ghc",
"range": ">=9.6"
}
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "foldable1-classes-compat",
"range": ">=0.1 && <0.2",
"libraries": [
"main"
]
}
],
"fields": {}
},
"branches": []
},
"else": null
}
]
}
}
],
"setupDependencies": [],
"flags": [],
"sourceRepositories": [
{
"kind": "head",
"fields": {
"location": [
"https://github.com/haskellari/these.git"
],
"subdir": [
"these"
],
"type": [
"git"
]
}
}
],
"warnings": [],
"sourceUrl": "https://hackage.haskell.org/package/these-1.2.1/these.cabal",
"sha256": "ba1aec9a502eb2b3f90ef254f420468a3c4e5b9b7e8324e3ddc7035143c92640",
"importedAt": "2026-10-14T12:49:12.842Z",
"dependencies": [
{
"package": "base",
"range": ">=4.12.0.0 && <4.23",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "binary",
"range": ">=0.8.6.0 && <0.10",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "deepseq",
"range": ">=1.4.4.0 && <1.6",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "assoc",
"range": ">=1.1.1 && <1.2",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "hashable",
"range": ">=1.4.4.0 && <1.6",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "foldable1-classes-compat",
"range": ">=0.1 && <0.2",
"libraries": [
"main"
],
"component": "library:main",
"conditions": [
{
"not": {
"compiler": "ghc",
"range": ">=9.6"
}
}
]
}
],
"exposedModules": [
"Data.Functor.These",
"Data.These",
"Data.These.Combinators"
],
"documents": {
"readme": {
"status": "missing",
"sha256": null,
"error": null,
"checkedAt": "2026-10-14T12:49:13.511Z"
},
"changelog": {
"status": "available",
"sha256": "a26f8c301872f51b7006e146977e3e2b3339431034e1069354bec172d2cdb684",
"error": null,
"checkedAt": "2026-10-14T12:49:13.692Z"
}
},
"documentation": null,
"versions": [
{
"version": "1.2.1",
"imported_at": "2026-10-14T12:49:12.842Z"
}
]
}