Open the imported Cabal file ↗
- author
- Bas van Dijk
- bug-reports
- https://github.com/basvandijk/scientific/issues
- build-type
- Simple
- cabal-version
- >=1.10
- category
- Data
- extra-source-files
- changelog
- homepage
- https://github.com/basvandijk/scientific
- license
- BSD3
- license-file
- LICENSE
- maintainer
- Bas van Dijk <v.dijk.bas@gmail.com>
- name
- scientific
- synopsis
- Numbers represented using scientific notation
- 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.3 || ==9.12.2 || ==9.14.1
- version
- 0.3.9.0
Show the complete metadata as JSON
{
"schemaVersion": 1,
"name": "scientific",
"version": "0.3.9.0",
"cabalVersion": "1.10",
"buildType": "Simple",
"fields": {
"author": [
"Bas van Dijk"
],
"bug-reports": [
"https://github.com/basvandijk/scientific/issues"
],
"build-type": [
"Simple"
],
"cabal-version": [
">=1.10"
],
"category": [
"Data"
],
"description": [
"\"Data.Scientific\" provides the number type 'Scientific'. Scientific numbers are\narbitrary precision and space efficient. They are represented using\n<http://en.wikipedia.org/wiki/Scientific_notation scientific notation>.\nThe implementation uses a coefficient @c :: 'Integer'@ and a base-10 exponent\n@e :: 'Int'@. A scientific number corresponds to the\n'Fractional' number: @'fromInteger' c * 10 '^^' e@.\n.\nNote that since we're using an 'Int' to represent the exponent these numbers\naren't truly arbitrary precision. I intend to change the type of the exponent\nto 'Integer' in a future release.\n.\nThe main application of 'Scientific' is to be used as the target of parsing\narbitrary precision numbers coming from an untrusted source. The advantages\nover using 'Rational' for this are that:\n.\n* A 'Scientific' is more efficient to construct. Rational numbers need to be\nconstructed using '%' which has to compute the 'gcd' of the 'numerator' and\n'denominator'.\n.\n* 'Scientific' is safe against numbers with huge exponents. For example:\n@1e1000000000 :: 'Rational'@ will fill up all space and crash your\nprogram. Scientific works as expected:\n.\n>>> read \"1e1000000000\" :: Scientific\n1.0e1000000000\n.\n* Also, the space usage of converting scientific numbers with huge exponents to\n@'Integral's@ (like: 'Int') or @'RealFloat's@ (like: 'Double' or 'Float')\nwill always be bounded by the target type."
],
"extra-source-files": [
"changelog"
],
"homepage": [
"https://github.com/basvandijk/scientific"
],
"license": [
"BSD3"
],
"license-file": [
"LICENSE"
],
"maintainer": [
"Bas van Dijk <v.dijk.bas@gmail.com>"
],
"name": [
"scientific"
],
"synopsis": [
"Numbers represented using scientific notation"
],
"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.3\n|| ==9.12.2\n|| ==9.14.1"
],
"version": [
"0.3.9.0"
]
},
"components": [
{
"kind": "library",
"name": "main",
"tree": {
"data": {
"buildable": null,
"exposedModules": [
"Data.Scientific",
"Data.ByteString.Builder.Scientific",
"Data.Text.Lazy.Builder.Scientific"
],
"otherModules": [
"GHC.Integer.Compat",
"Utils"
],
"dependencies": [
{
"package": "base",
"range": ">=4.12.0.0 && <4.23",
"libraries": [
"main"
]
},
{
"package": "binary",
"range": ">=0.8.6.0 && <0.9",
"libraries": [
"main"
]
},
{
"package": "bytestring",
"range": ">=0.10.8.2 && <0.13",
"libraries": [
"main"
]
},
{
"package": "containers",
"range": ">=0.6.0.1 && <0.9",
"libraries": [
"main"
]
},
{
"package": "deepseq",
"range": ">=1.4.4.0 && <1.6",
"libraries": [
"main"
]
},
{
"package": "hashable",
"range": ">=1.4.4.0 && <1.6",
"libraries": [
"main"
]
},
{
"package": "integer-logarithms",
"range": ">=1.0.3.1 && <1.1",
"libraries": [
"main"
]
},
{
"package": "primitive",
"range": ">=0.9.0.0 && <0.10",
"libraries": [
"main"
]
},
{
"package": "template-haskell",
"range": ">=2.14.0.0 && <2.25",
"libraries": [
"main"
]
},
{
"package": "text",
"range": ">=1.2.3.0 && <1.3 || >=2.0 && <2.2",
"libraries": [
"main"
]
}
],
"fields": {}
},
"branches": [
{
"condition": {
"compiler": "ghc",
"range": ">=9.0"
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "base",
"range": ">=4.15",
"libraries": [
"main"
]
}
],
"fields": {}
},
"branches": [
{
"condition": {
"flag": "integer-simple"
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "invalid-cabal-flag-settings",
"range": "<0",
"libraries": [
"main"
]
}
],
"fields": {}
},
"branches": []
},
"else": null
}
]
},
"else": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [],
"fields": {}
},
"branches": [
{
"condition": {
"flag": "integer-simple"
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "integer-simple",
"range": "-any",
"libraries": [
"main"
]
}
],
"fields": {}
},
"branches": []
},
"else": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "integer-gmp",
"range": "-any",
"libraries": [
"main"
]
}
],
"fields": {}
},
"branches": []
}
}
]
}
},
{
"condition": {
"compiler": "ghc",
"range": "<8"
},
"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": "test-scientific",
"tree": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "base",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "binary",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "bytestring",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "QuickCheck",
"range": ">=2.14.2",
"libraries": [
"main"
]
},
{
"package": "scientific",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "tasty",
"range": ">=1.4.0.1",
"libraries": [
"main"
]
},
{
"package": "tasty-hunit",
"range": ">=0.8",
"libraries": [
"main"
]
},
{
"package": "tasty-quickcheck",
"range": ">=0.8",
"libraries": [
"main"
]
},
{
"package": "text",
"range": "-any",
"libraries": [
"main"
]
}
],
"fields": {
"type": [
"exitcode-stdio-1.0"
]
}
},
"branches": []
}
},
{
"kind": "benchmark",
"name": "bench-scientific",
"tree": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "base",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "criterion",
"range": ">=0.5",
"libraries": [
"main"
]
},
{
"package": "scientific",
"range": "-any",
"libraries": [
"main"
]
}
],
"fields": {
"type": [
"exitcode-stdio-1.0"
]
}
},
"branches": []
}
}
],
"setupDependencies": [],
"flags": [
{
"name": "integer-simple",
"default": false,
"manual": false,
"description": "Use the integer-simple package instead of integer-gmp"
}
],
"sourceRepositories": [
{
"kind": "head",
"fields": {
"location": [
"https://github.com/basvandijk/scientific.git"
],
"type": [
"git"
]
}
}
],
"warnings": [],
"sourceUrl": "https://hackage.haskell.org/package/scientific-0.3.9.0/scientific.cabal",
"sha256": "867d3d862acf041cf1540eca4e1d699797e9d8b61ade41a8284c94ad83ff540d",
"importedAt": "2026-10-14T12:47:53.913Z",
"dependencies": [
{
"package": "base",
"range": ">=4.12.0.0 && <4.23",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "binary",
"range": ">=0.8.6.0 && <0.9",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "bytestring",
"range": ">=0.10.8.2 && <0.13",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "containers",
"range": ">=0.6.0.1 && <0.9",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "deepseq",
"range": ">=1.4.4.0 && <1.6",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "hashable",
"range": ">=1.4.4.0 && <1.6",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "integer-logarithms",
"range": ">=1.0.3.1 && <1.1",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "primitive",
"range": ">=0.9.0.0 && <0.10",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "template-haskell",
"range": ">=2.14.0.0 && <2.25",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "text",
"range": ">=1.2.3.0 && <1.3 || >=2.0 && <2.2",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "base",
"range": ">=4.15",
"libraries": [
"main"
],
"component": "library:main",
"conditions": [
{
"compiler": "ghc",
"range": ">=9.0"
}
]
},
{
"package": "invalid-cabal-flag-settings",
"range": "<0",
"libraries": [
"main"
],
"component": "library:main",
"conditions": [
{
"compiler": "ghc",
"range": ">=9.0"
},
{
"flag": "integer-simple"
}
]
},
{
"package": "integer-simple",
"range": "-any",
"libraries": [
"main"
],
"component": "library:main",
"conditions": [
{
"not": {
"compiler": "ghc",
"range": ">=9.0"
}
},
{
"flag": "integer-simple"
}
]
},
{
"package": "integer-gmp",
"range": "-any",
"libraries": [
"main"
],
"component": "library:main",
"conditions": [
{
"not": {
"compiler": "ghc",
"range": ">=9.0"
}
},
{
"not": {
"flag": "integer-simple"
}
}
]
},
{
"package": "base",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:test-scientific",
"conditions": []
},
{
"package": "binary",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:test-scientific",
"conditions": []
},
{
"package": "bytestring",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:test-scientific",
"conditions": []
},
{
"package": "QuickCheck",
"range": ">=2.14.2",
"libraries": [
"main"
],
"component": "test-suite:test-scientific",
"conditions": []
},
{
"package": "scientific",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:test-scientific",
"conditions": []
},
{
"package": "tasty",
"range": ">=1.4.0.1",
"libraries": [
"main"
],
"component": "test-suite:test-scientific",
"conditions": []
},
{
"package": "tasty-hunit",
"range": ">=0.8",
"libraries": [
"main"
],
"component": "test-suite:test-scientific",
"conditions": []
},
{
"package": "tasty-quickcheck",
"range": ">=0.8",
"libraries": [
"main"
],
"component": "test-suite:test-scientific",
"conditions": []
},
{
"package": "text",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:test-scientific",
"conditions": []
},
{
"package": "base",
"range": "-any",
"libraries": [
"main"
],
"component": "benchmark:bench-scientific",
"conditions": []
},
{
"package": "criterion",
"range": ">=0.5",
"libraries": [
"main"
],
"component": "benchmark:bench-scientific",
"conditions": []
},
{
"package": "scientific",
"range": "-any",
"libraries": [
"main"
],
"component": "benchmark:bench-scientific",
"conditions": []
}
],
"exposedModules": [
"Data.Scientific",
"Data.ByteString.Builder.Scientific",
"Data.Text.Lazy.Builder.Scientific"
],
"documents": {
"readme": {
"status": "missing",
"sha256": null,
"error": null,
"checkedAt": "2026-10-14T12:47:54.528Z"
},
"changelog": {
"status": "available",
"sha256": "d879d1ed65b68ee8ce75a59d23028d38dbc09c1c667d51bd9c928aacef582032",
"error": null,
"checkedAt": "2026-10-14T12:47:54.765Z"
}
},
"documentation": null,
"versions": [
{
"version": "0.3.9.0",
"imported_at": "2026-10-14T12:47:53.913Z"
}
]
}