← All packages

scientific0.3.9.0

Numbers represented using scientific notation

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

Import a package

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