← All packages

these1.2.1

An either-or-both data type.

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

Import a package

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