packages feed

scrod-0.2026.2.21: scrod.cabal

cabal-version: 3.12
name: scrod
version: 0.2026.2.21
synopsis: Worse Haskell documentation
description:
  Scrod generates documentation for Haskell modules, similar to Haddock. Unlike
  Haddock, it only parses the input rather than requiring a full build. This
  makes it faster but less accurate.

category: Documentation
homepage: https://scrod.fyi
license: 0BSD
license-file: LICENSE.txt
maintainer: Taylor Fausak
extra-doc-files:
  CHANGELOG.md
  CONTRIBUTING.md
  README.md

source-repository head
  location: https://github.com/tfausak/scrod
  type: git

flag pedantic
  default: False
  manual: True

flag wasm
  default: False
  manual: True

common library
  build-depends: base ^>=4.22.0
  default-language: Haskell2010
  ghc-options:
    -fmax-relevant-binds=0
    -fno-show-error-context
    -funclutter-valid-hole-fits
    -Weverything
    -Wno-all-missed-specialisations
    -Wno-implicit-prelude
    -Wno-missed-specialisations
    -Wno-missing-deriving-strategies
    -Wno-missing-export-lists
    -Wno-missing-kind-signatures
    -Wno-missing-role-annotations
    -Wno-missing-safe-haskell-mode
    -Wno-prepositive-qualified-module
    -Wno-safe
    -Wno-unsafe

  if flag(pedantic)
    ghc-options: -Werror

common executable
  import: library
  build-depends: scrod
  ghc-options:
    -rtsopts
    -threaded

common wasm
  import: library
  build-depends: scrod
  ghc-options:
    "-optl-Wl,--strip-debug"
    "-optl-Wl,--compress-relocations"

  if !flag(wasm)
    buildable: False

library
  import: library
  autogen-modules: PackageInfo_scrod
  build-depends:
    Cabal-syntax ^>=3.16.0,
    bytestring ^>=0.12.2,
    containers ^>=0.8,
    exceptions ^>=0.10.11,
    ghc ^>=9.14.1,
    ghc-boot-th ^>=9.14.1,
    haddock-library ^>=1.11.0,
    parsec ^>=3.1.18,
    template-haskell ^>=2.24.0,
    text ^>=2.1.3,
    transformers ^>=0.6.1,

  -- cabal-gild: discover source/library
  exposed-modules:
    Scrod
    Scrod.Cabal
    Scrod.Convert.FromGhc
    Scrod.Convert.FromGhc.CompleteParents
    Scrod.Convert.FromGhc.Constructors
    Scrod.Convert.FromGhc.Doc
    Scrod.Convert.FromGhc.ExportOrdering
    Scrod.Convert.FromGhc.Exports
    Scrod.Convert.FromGhc.FamilyInstanceParents
    Scrod.Convert.FromGhc.FixityParents
    Scrod.Convert.FromGhc.InlineParents
    Scrod.Convert.FromGhc.InstanceParents
    Scrod.Convert.FromGhc.Internal
    Scrod.Convert.FromGhc.ItemKind
    Scrod.Convert.FromGhc.KindSigParents
    Scrod.Convert.FromGhc.Merge
    Scrod.Convert.FromGhc.Names
    Scrod.Convert.FromGhc.ParentAssociation
    Scrod.Convert.FromGhc.RoleParents
    Scrod.Convert.FromGhc.SigArguments
    Scrod.Convert.FromGhc.SpecialiseParents
    Scrod.Convert.FromGhc.Visibility
    Scrod.Convert.FromGhc.WarningParents
    Scrod.Convert.FromHaddock
    Scrod.Convert.ToHtml
    Scrod.Convert.ToJsonSchema
    Scrod.Core.Category
    Scrod.Core.Column
    Scrod.Core.Definition
    Scrod.Core.Doc
    Scrod.Core.Example
    Scrod.Core.Export
    Scrod.Core.ExportIdentifier
    Scrod.Core.ExportName
    Scrod.Core.ExportNameKind
    Scrod.Core.Extension
    Scrod.Core.Header
    Scrod.Core.Hyperlink
    Scrod.Core.Identifier
    Scrod.Core.Import
    Scrod.Core.Item
    Scrod.Core.ItemKey
    Scrod.Core.ItemKind
    Scrod.Core.ItemName
    Scrod.Core.Language
    Scrod.Core.Level
    Scrod.Core.Line
    Scrod.Core.Located
    Scrod.Core.Location
    Scrod.Core.ModLink
    Scrod.Core.Module
    Scrod.Core.ModuleName
    Scrod.Core.Namespace
    Scrod.Core.NumberedItem
    Scrod.Core.PackageName
    Scrod.Core.Picture
    Scrod.Core.Section
    Scrod.Core.Since
    Scrod.Core.Subordinates
    Scrod.Core.Table
    Scrod.Core.TableCell
    Scrod.Core.Version
    Scrod.Core.Visibility
    Scrod.Core.Warning
    Scrod.Cpp
    Scrod.Cpp.Directive
    Scrod.Cpp.Expr
    Scrod.Decimal
    Scrod.Executable.Config
    Scrod.Executable.Flag
    Scrod.Executable.Format
    Scrod.Executable.Main
    Scrod.Extra.Builder
    Scrod.Extra.Either
    Scrod.Extra.Maybe
    Scrod.Extra.Monoid
    Scrod.Extra.Ord
    Scrod.Extra.Parsec
    Scrod.Extra.Read
    Scrod.Extra.Semigroup
    Scrod.Ghc.ArchOS
    Scrod.Ghc.DynFlags
    Scrod.Ghc.FileSettings
    Scrod.Ghc.GhcNameVersion
    Scrod.Ghc.OnOff
    Scrod.Ghc.Parse
    Scrod.Ghc.ParserOpts
    Scrod.Ghc.Platform
    Scrod.Ghc.PlatformMisc
    Scrod.Ghc.ToolSettings
    Scrod.Ghc.Uninitialized
    Scrod.Ghc.UnitId
    Scrod.Ghc.UnitSettings
    Scrod.Json.Array
    Scrod.Json.Boolean
    Scrod.Json.Null
    Scrod.Json.Number
    Scrod.Json.Object
    Scrod.Json.Pair
    Scrod.Json.String
    Scrod.Json.ToJson
    Scrod.Json.Value
    Scrod.JsonPointer.Evaluate
    Scrod.JsonPointer.Pointer
    Scrod.JsonPointer.Token
    Scrod.Schema
    Scrod.Spec
    Scrod.TestSuite.All
    Scrod.TestSuite.Integration
    Scrod.Unlit
    Scrod.Xml.Attribute
    Scrod.Xml.Comment
    Scrod.Xml.Content
    Scrod.Xml.Declaration
    Scrod.Xml.Document
    Scrod.Xml.Element
    Scrod.Xml.Instruction
    Scrod.Xml.Misc
    Scrod.Xml.Name
    Scrod.Xml.Text

  hs-source-dirs: source/library
  other-modules: PackageInfo_scrod

benchmark scrod-benchmark
  import: executable
  build-depends:
    bytestring ^>=0.12.2,
    tasty-bench ^>=0.5,

  hs-source-dirs: source/benchmark
  main-is: Main.hs
  type: exitcode-stdio-1.0

test-suite scrod-test-suite
  import: executable
  build-depends:
    tasty ^>=1.5.3,
    tasty-hunit ^>=0.10.2,
    transformers ^>=0.6.1,

  hs-source-dirs: source/test-suite
  main-is: Main.hs
  type: exitcode-stdio-1.0

executable scrod
  import: executable
  hs-source-dirs: source/executables/scrod
  main-is: Main.hs

executable scrod-wasm
  import: wasm
  build-depends: ghc-experimental ^>=9.1401.0
  ghc-options:
    -no-hs-main
    -optl-mexec-model=reactor

  hs-source-dirs: source/executables/scrod-wasm
  main-is: Main.hs

executable scrod-wasi
  import: wasm
  ghc-options: -optl-mexec-model=command
  hs-source-dirs: source/executables/scrod-wasi
  main-is: Main.hs