Open the imported Cabal file ↗
- bug-reports
- https://github.com/haskell/stm/issues
- build-type
- Simple
- cabal-version
- >=1.10
- category
- Concurrency
- extra-source-files
- changelog.md README.md testsuite/src/*.hs testsuite/testsuite.cabal
- homepage
- https://wiki.haskell.org/Software_transactional_memory
- license
- BSD3
- license-file
- LICENSE
- maintainer
- libraries@haskell.org
- name
- stm
- synopsis
- Software Transactional Memory
- tested-with
- GHC==9.6.2, GHC==9.4.7, GHC==9.2.8, GHC==9.0.2, GHC==8.10.7, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2, GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2, GHC==7.2.2
- version
- 2.5.3.1
- x-revision
- 1
Show the complete metadata as JSON
{
"schemaVersion": 1,
"name": "stm",
"version": "2.5.3.1",
"cabalVersion": "1.10",
"buildType": "Simple",
"fields": {
"bug-reports": [
"https://github.com/haskell/stm/issues"
],
"build-type": [
"Simple"
],
"cabal-version": [
">=1.10"
],
"category": [
"Concurrency"
],
"description": [
"Software Transactional Memory, or STM, is an abstraction for\nconcurrent communication. The main benefits of STM are\n/composability/ and /modularity/. That is, using STM you can write\nconcurrent abstractions that can be easily composed with any other\nabstraction built using STM, without exposing the details of how\nyour abstraction ensures safety. This is typically not the case\nwith other forms of concurrent communication, such as locks or\n'MVar's."
],
"extra-source-files": [
"changelog.md\nREADME.md\ntestsuite/src/*.hs\ntestsuite/testsuite.cabal"
],
"homepage": [
"https://wiki.haskell.org/Software_transactional_memory"
],
"license": [
"BSD3"
],
"license-file": [
"LICENSE"
],
"maintainer": [
"libraries@haskell.org"
],
"name": [
"stm"
],
"synopsis": [
"Software Transactional Memory"
],
"tested-with": [
"GHC==9.6.2, GHC==9.4.7, GHC==9.2.8, GHC==9.0.2, GHC==8.10.7, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2, GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2, GHC==7.2.2"
],
"version": [
"2.5.3.1"
],
"x-revision": [
"1"
]
},
"components": [
{
"kind": "library",
"name": "main",
"tree": {
"data": {
"buildable": null,
"exposedModules": [
"Control.Concurrent.STM",
"Control.Concurrent.STM.TArray",
"Control.Concurrent.STM.TVar",
"Control.Concurrent.STM.TChan",
"Control.Concurrent.STM.TMVar",
"Control.Concurrent.STM.TQueue",
"Control.Concurrent.STM.TBQueue",
"Control.Concurrent.STM.TSem",
"Control.Monad.STM"
],
"otherModules": [
"Control.Sequential.STM"
],
"dependencies": [
{
"package": "base",
"range": ">=4.4 && <4.22",
"libraries": [
"main"
]
},
{
"package": "array",
"range": ">=0.3 && <0.6",
"libraries": [
"main"
]
}
],
"fields": {}
},
"branches": [
{
"condition": {
"compiler": "ghc",
"range": ">=7.2"
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [],
"fields": {}
},
"branches": []
},
"else": null
},
{
"condition": {
"compiler": "ghc",
"range": ">=7.9"
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [],
"fields": {}
},
"branches": []
},
"else": null
},
{
"condition": {
"not": {
"compiler": "ghc",
"range": ">=7.10"
}
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "nats",
"range": ">=0.1.3 && <0.3 || >=1 && <1.2",
"libraries": [
"main"
]
}
],
"fields": {}
},
"branches": []
},
"else": null
},
{
"condition": {
"not": {
"compiler": "ghc",
"range": ">=8.0"
}
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "semigroups",
"range": ">=0.18.6 && <0.21",
"libraries": [
"main"
]
}
],
"fields": {}
},
"branches": []
},
"else": null
}
]
}
}
],
"setupDependencies": [],
"flags": [],
"sourceRepositories": [
{
"kind": "head",
"fields": {
"location": [
"https://github.com/haskell/stm.git"
],
"type": [
"git"
]
}
}
],
"warnings": [],
"sourceUrl": "https://hackage.haskell.org/package/stm-2.5.3.1/stm.cabal",
"sha256": "421b57c9cdf55b4977e9445336be3895ba0c8d92b6ec6e474f140e173270d9dd",
"importedAt": "2026-10-14T12:42:13.694Z",
"dependencies": [
{
"package": "base",
"range": ">=4.4 && <4.22",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "array",
"range": ">=0.3 && <0.6",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "nats",
"range": ">=0.1.3 && <0.3 || >=1 && <1.2",
"libraries": [
"main"
],
"component": "library:main",
"conditions": [
{
"not": {
"compiler": "ghc",
"range": ">=7.10"
}
}
]
},
{
"package": "semigroups",
"range": ">=0.18.6 && <0.21",
"libraries": [
"main"
],
"component": "library:main",
"conditions": [
{
"not": {
"compiler": "ghc",
"range": ">=8.0"
}
}
]
}
],
"exposedModules": [
"Control.Concurrent.STM",
"Control.Concurrent.STM.TArray",
"Control.Concurrent.STM.TVar",
"Control.Concurrent.STM.TChan",
"Control.Concurrent.STM.TMVar",
"Control.Concurrent.STM.TQueue",
"Control.Concurrent.STM.TBQueue",
"Control.Concurrent.STM.TSem",
"Control.Monad.STM"
],
"documents": {
"readme": {
"status": "available",
"sha256": "62a1778e20725c92b03ed0c0e4a7dc67178469ed2346e3e686672a2b09e04d48",
"error": null,
"checkedAt": "2026-10-14T12:42:14.916Z"
},
"changelog": {
"status": "available",
"sha256": "55e8c4560f7307e71cdda9599403eff7cd8ea16fbd255dab6ef5834be8810b47",
"error": null,
"checkedAt": "2026-10-14T12:42:15.055Z"
}
},
"documentation": null,
"versions": [
{
"version": "2.5.3.1",
"imported_at": "2026-10-14T12:42:13.694Z"
}
]
}