HORIZON HASKELLDocslts/ghc-10.0.x77a86622026-10-31Search packagesCtrl K
Theme: |

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 77a8662 · 2026-10-31

classclass Parsec a where

Class for parsing with parsec. Mainly used for .cabal file fields.

For parsing .cabal like file structure, see Distribution.Fields.

Methods

Instances82FieldGrammar, Parsec, …
  • Parsec OpenModuleDefined in Cabal-syntax-3.18.1.0 · Distribution.Backpack
    Example1 expression
    eitherParsec "Includes2-0.1.0.0-inplace-mysql:Database.MySQL" :: Either String OpenModuleRight (OpenModule (DefiniteUnitId (DefUnitId {unDefUnitId = UnitId "Includes2-0.1.0.0-inplace-mysql"})) (ModuleName "Database.MySQL"))
  • Parsec OpenUnitIdDefined in Cabal-syntax-3.18.1.0 · Distribution.Backpack
    Example1 expression
    eitherParsec "foobar" :: Either String OpenUnitIdRight (DefiniteUnitId (DefUnitId {unDefUnitId = UnitId "foobar"}))
    Example1 expression
    eitherParsec "foo[Str=text-1.2.3:Data.Text.Text]" :: Either String OpenUnitIdRight (IndefFullUnitId (ComponentId "foo") (fromList [(ModuleName "Str",OpenModule (DefiniteUnitId (DefUnitId {unDefUnitId = UnitId "text-1.2.3"})) (ModuleName "Data.Text.Text"))]))
  • Parsec AbiTagDefined in Cabal-syntax-3.18.1.0 · Distribution.Compiler
  • Parsec CompilerFlavorDefined in Cabal-syntax-3.18.1.0 · Distribution.Compiler
  • Parsec CompilerIdDefined in Cabal-syntax-3.18.1.0 · Distribution.Compiler
  • Parsec FilePathNTDefined in Cabal-syntax-3.18.1.0 · Distribution.FieldGrammar.Newtypes
  • Parsec SpecLicenseDefined in Cabal-syntax-3.18.1.0 · Distribution.FieldGrammar.Newtypes
  • Parsec SpecVersionDefined in Cabal-syntax-3.18.1.0 · Distribution.FieldGrammar.Newtypes
  • Parsec TestedWithDefined in Cabal-syntax-3.18.1.0 · Distribution.FieldGrammar.Newtypes
  • Parsec TokenDefined in Cabal-syntax-3.18.1.0 · Distribution.FieldGrammar.Newtypes
  • Parsec Token'Defined in Cabal-syntax-3.18.1.0 · Distribution.FieldGrammar.Newtypes
  • Parsec LicenseDefined in Cabal-syntax-3.18.1.0 · Distribution.License
  • Parsec ModuleNameDefined in Cabal-syntax-3.18.1.0 · Distribution.ModuleName
  • Parsec CompatDataDirDefined in Cabal-syntax-3.18.1.0 · Distribution.PackageDescription.FieldGrammar
  • Parsec CompatLicenseFileDefined in Cabal-syntax-3.18.1.0 · Distribution.PackageDescription.FieldGrammar
  • Parsec LicenseDefined in Cabal-syntax-3.18.1.0 · Distribution.SPDX.License
    Example1 expression
    eitherParsec "BSD-3-Clause AND MIT" :: Either String LicenseRight (License (EAnd (ELicense (ELicenseId BSD_3_Clause) Nothing) (ELicense (ELicenseId MIT) Nothing)))
    Example1 expression
    eitherParsec "NONE" :: Either String LicenseRight NONE
  • Parsec LicenseExceptionIdDefined in Cabal-syntax-3.18.1.0 · Distribution.SPDX.LicenseExceptionId
  • Parsec LicenseExpressionDefined in Cabal-syntax-3.18.1.0 · Distribution.SPDX.LicenseExpression
  • Parsec SimpleLicenseExpressionDefined in Cabal-syntax-3.18.1.0 · Distribution.SPDX.LicenseExpression
  • Parsec LicenseIdDefined in Cabal-syntax-3.18.1.0 · Distribution.SPDX.LicenseId
    Example1 expression
    eitherParsec "BSD-3-Clause" :: Either String LicenseIdRight BSD_3_Clause
    Example1 expression
    eitherParsec "BSD3" :: Either String LicenseIdLeft "...Unknown SPDX license identifier: 'BSD3' Do you mean BSD-3-Clause?"
  • Parsec LicenseRefDefined in Cabal-syntax-3.18.1.0 · Distribution.SPDX.LicenseReference
  • Parsec ArchDefined in Cabal-syntax-3.18.1.0 · Distribution.System
  • Parsec OSDefined in Cabal-syntax-3.18.1.0 · Distribution.System
  • Parsec PlatformDefined in Cabal-syntax-3.18.1.0 · Distribution.System
  • Parsec AbiDependencyDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.AbiDependency
  • Parsec AbiHashDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.AbiHash
  • Parsec BenchmarkTypeDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.BenchmarkType
  • Parsec BuildTypeDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.BuildType
  • Parsec ComponentIdDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.ComponentId
  • Parsec ComponentNameDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.ComponentName
  • Parsec DependencyDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.Dependency
    Example1 expression
    simpleParsec "mylib:sub" :: Maybe DependencyJust (Dependency (PackageName "mylib") (OrLaterVersion (mkVersion [0])) (fromNonEmpty (LSubLibName (UnqualComponentName "sub") :| [])))
    Example1 expression
    simpleParsec "mylib:{sub1,sub2}" :: Maybe DependencyJust (Dependency (PackageName "mylib") (OrLaterVersion (mkVersion [0])) (fromNonEmpty (LSubLibName (UnqualComponentName "sub1") :| [LSubLibName (UnqualComponentName "sub2")])))
    Example1 expression
    simpleParsec "mylib:{ sub1 , sub2 }" :: Maybe DependencyJust (Dependency (PackageName "mylib") (OrLaterVersion (mkVersion [0])) (fromNonEmpty (LSubLibName (UnqualComponentName "sub1") :| [LSubLibName (UnqualComponentName "sub2")])))
    Example1 expression
    simpleParsec "mylib:{ sub1 , sub2 } ^>= 42" :: Maybe DependencyJust (Dependency (PackageName "mylib") (MajorBoundVersion (mkVersion [42])) (fromNonEmpty (LSubLibName (UnqualComponentName "sub1") :| [LSubLibName (UnqualComponentName "sub2")])))
    Example1 expression
    simpleParsec "mylib:{ } ^>= 42" :: Maybe DependencyNothing
    Example1 expression
    traverse_ print (map simpleParsec ["mylib:mylib", "mylib:{mylib}", "mylib:{mylib,sublib}" ] :: [Maybe Dependency])Just (Dependency (PackageName "mylib") (OrLaterVersion (mkVersion [0])) (fromNonEmpty (LMainLibName :| [])))Just (Dependency (PackageName "mylib") (OrLaterVersion (mkVersion [0])) (fromNonEmpty (LMainLibName :| [])))Just (Dependency (PackageName "mylib") (OrLaterVersion (mkVersion [0])) (fromNonEmpty (LMainLibName :| [LSubLibName (UnqualComponentName "sublib")])))

    Spaces around colon are not allowed:

    Example1 expression
    map simpleParsec ["mylib: sub", "mylib :sub", "mylib: {sub1,sub2}", "mylib :{sub1,sub2}"] :: [Maybe Dependency][Nothing,Nothing,Nothing,Nothing]

    Sublibrary syntax is accepted since cabal-version: 3.0

    Example1 expression
    map (`simpleParsec'` "mylib:sub") [CabalSpecV2_4, CabalSpecV3_0] :: [Maybe Dependency][Nothing,Just (Dependency (PackageName "mylib") (OrLaterVersion (mkVersion [0])) (fromNonEmpty (LSubLibName (UnqualComponentName "sub") :| [])))]
  • Parsec ExeDependencyDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.ExeDependency

    Examples

    Example1 expression
    simpleParsec "happy:happy" :: Maybe ExeDependencyJust (ExeDependency (PackageName "happy") (UnqualComponentName "happy") (OrLaterVersion (mkVersion [0])))
    Example1 expression
    simpleParsec "happy:happy >= 1.19.12" :: Maybe ExeDependencyJust (ExeDependency (PackageName "happy") (UnqualComponentName "happy") (OrLaterVersion (mkVersion [1,19,12])))
    Example1 expression
    simpleParsec "happy:happy>=1.19.12" :: Maybe ExeDependencyJust (ExeDependency (PackageName "happy") (UnqualComponentName "happy") (OrLaterVersion (mkVersion [1,19,12])))
    Example1 expression
    simpleParsec "happy : happy >= 1.19.12" :: Maybe ExeDependencyNothing
    Example1 expression
    simpleParsec "happy: happy >= 1.19.12" :: Maybe ExeDependencyNothing
    Example1 expression
    simpleParsec "happy :happy >= 1.19.12" :: Maybe ExeDependencyNothing
  • Parsec ExecutableScopeDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.ExecutableScope
  • Parsec ExposedModuleDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.ExposedModule
  • Parsec FlagAssignmentDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.Flag
    Example1 expression
    simpleParsec "" :: Maybe FlagAssignmentJust (fromList [])
    Example1 expression
    simpleParsec "+foo -bar" :: Maybe FlagAssignmentJust (fromList [(FlagName "bar",(1,False)),(FlagName "foo",(1,True))])
    Example1 expression
    simpleParsec "-none -any" :: Maybe FlagAssignmentJust (fromList [(FlagName "any",(1,False)),(FlagName "none",(1,False))])
    Example1 expression
    simpleParsec "+foo -foo +foo +foo" :: Maybe FlagAssignmentJust (fromList [(FlagName "foo",(4,True))])
    Example1 expression
    simpleParsec "+foo -bar baz" :: Maybe FlagAssignmentNothing

    Issue #7279 was fixed in Cabal-3.8

    Example1 expression
    explicitEitherParsec (parsecCommaList parsec) "+foo , -bar" :: Either String [FlagAssignment]Right [fromList [(FlagName "foo",(1,True))],fromList [(FlagName "bar",(1,False))]]
    Example1 expression
    explicitEitherParsec (parsecCommaList parsecFlagAssignmentNonEmpty) "+foo , -bar" :: Either String [FlagAssignment]Right [fromList [(FlagName "foo",(1,True))],fromList [(FlagName "bar",(1,False))]]
    Example1 expression
    simpleParsec "+foo+foo" :: Maybe FlagAssignmentNothing
  • Parsec FlagNameDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.Flag
  • Parsec LibVersionInfoDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.ForeignLib
  • Parsec ForeignLibOptionDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.ForeignLibOption
  • Parsec ForeignLibTypeDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.ForeignLibType
  • Parsec IncludeRenamingDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.IncludeRenaming
  • Parsec CompatPackageKeyDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.InstalledPackageInfo.FieldGrammar
  • Parsec ExposedModulesDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.InstalledPackageInfo.FieldGrammar
  • Parsec InstWithDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.InstalledPackageInfo.FieldGrammar
  • Parsec SpecLicenseLenientDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.InstalledPackageInfo.FieldGrammar
  • Parsec LegacyExeDependencyDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.LegacyExeDependency
  • Parsec LibraryVisibilityDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.LibraryVisibility
  • Parsec MixinDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.Mixin
    Example1 expression
    simpleParsec "mylib" :: Maybe MixinJust (Mixin {mixinPackageName = PackageName "mylib", mixinLibraryName = LMainLibName, mixinIncludeRenaming = IncludeRenaming {includeProvidesRn = DefaultRenaming, includeRequiresRn = DefaultRenaming}})
    Example1 expression
    simpleParsec "thatlib:sublib" :: Maybe MixinJust (Mixin {mixinPackageName = PackageName "thatlib", mixinLibraryName = LSubLibName (UnqualComponentName "sublib"), mixinIncludeRenaming = IncludeRenaming {includeProvidesRn = DefaultRenaming, includeRequiresRn = DefaultRenaming}})
    Example1 expression
    simpleParsec "thatlib:thatlib" :: Maybe MixinJust (Mixin {mixinPackageName = PackageName "thatlib", mixinLibraryName = LMainLibName, mixinIncludeRenaming = IncludeRenaming {includeProvidesRn = DefaultRenaming, includeRequiresRn = DefaultRenaming}})

    Sublibrary syntax is accepted since cabal-version: 3.4.

    Example1 expression
    map (`simpleParsec'` "mylib:sub") [CabalSpecV3_0, CabalSpecV3_4] :: [Maybe Mixin][Nothing,Just (Mixin {mixinPackageName = PackageName "mylib", mixinLibraryName = LSubLibName (UnqualComponentName "sub"), mixinIncludeRenaming = IncludeRenaming {includeProvidesRn = DefaultRenaming, includeRequiresRn = DefaultRenaming}})]
  • Parsec ModuleDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.Module
  • Parsec ModuleReexportDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.ModuleReexport
  • Parsec ModuleRenamingDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.ModuleRenaming
  • Parsec MungedPackageIdDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.MungedPackageId
    Example1 expression
    simpleParsec "foo-bar-0" :: Maybe MungedPackageIdJust (MungedPackageId {mungedName = MungedPackageName (PackageName "foo-bar") LMainLibName, mungedVersion = mkVersion [0]})
    Example1 expression
    simpleParsec "foo-bar" :: Maybe MungedPackageIdJust (MungedPackageId {mungedName = MungedPackageName (PackageName "foo-bar") LMainLibName, mungedVersion = mkVersion []})
    Example1 expression
    simpleParsec "z-foo-bar-z-baz-0" :: Maybe MungedPackageIdJust (MungedPackageId {mungedName = MungedPackageName (PackageName "foo-bar") (LSubLibName (UnqualComponentName "baz")), mungedVersion = mkVersion [0]})
    Example1 expression
    simpleParsec "foo-bar-0-0" :: Maybe MungedPackageIdNothing
    Example1 expression
    simpleParsec "foo-bar.0" :: Maybe MungedPackageIdNothing
    Example1 expression
    simpleParsec "foo-bar.4-2" :: Maybe MungedPackageIdNothing
  • Parsec MungedPackageNameDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.MungedPackageName
    Example1 expression
    simpleParsec "servant" :: Maybe MungedPackageNameJust (MungedPackageName (PackageName "servant") LMainLibName)
    Example1 expression
    simpleParsec "z-servant-z-lackey" :: Maybe MungedPackageNameJust (MungedPackageName (PackageName "servant") (LSubLibName (UnqualComponentName "lackey")))
    Example1 expression
    simpleParsec "z-servant-zz" :: Maybe MungedPackageNameJust (MungedPackageName (PackageName "z-servant-zz") LMainLibName)
  • Parsec PackageIdentifierDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.PackageId
    Example1 expression
    simpleParsec "foo-bar-0" :: Maybe PackageIdentifierJust (PackageIdentifier {pkgName = PackageName "foo-bar", pkgVersion = mkVersion [0]})
    Example1 expression
    simpleParsec "foo-bar" :: Maybe PackageIdentifierJust (PackageIdentifier {pkgName = PackageName "foo-bar", pkgVersion = mkVersion []})

    Note: Stricter than Text instance

    Example1 expression
    simpleParsec "foo-bar-0-0" :: Maybe PackageIdentifierNothing
    Example1 expression
    simpleParsec "foo-bar.0" :: Maybe PackageIdentifierNothing
    Example1 expression
    simpleParsec "foo-bar.4-2" :: Maybe PackageIdentifierNothing
    Example1 expression
    simpleParsec "1.2.3" :: Maybe PackageIdentifierNothing
  • Parsec PackageNameDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.PackageName
  • Parsec PackageVersionConstraintDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.PackageVersionConstraint
    Example1 expression
    simpleParsec "foo" :: Maybe PackageVersionConstraintJust (PackageVersionConstraint (PackageName "foo") (OrLaterVersion (mkVersion [0])))
    Example1 expression
    simpleParsec "foo >=2.0" :: Maybe PackageVersionConstraintJust (PackageVersionConstraint (PackageName "foo") (OrLaterVersion (mkVersion [2,0])))
    Example1 expression
    simpleParsec "foo-2.0" :: Maybe PackageVersionConstraintJust (PackageVersionConstraint (PackageName "foo") (ThisVersion (mkVersion [2,0])))
  • Parsec PkgconfigDependencyDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.PkgconfigDependency
  • Parsec PkgconfigNameDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.PkgconfigName
  • Parsec PkgconfigVersionDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.PkgconfigVersion
    Example1 expression
    simpleParsec "1.0.2n" :: Maybe PkgconfigVersionJust (PkgconfigVersion "1.0.2n")
    Example1 expression
    simpleParsec "0.3.5+ds" :: Maybe PkgconfigVersionNothing
  • Parsec PkgconfigVersionRangeDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.PkgconfigVersionRange
  • Parsec KnownRepoTypeDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.SourceRepo
  • Parsec RepoKindDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.SourceRepo
  • Parsec RepoTypeDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.SourceRepo
  • Parsec TestTypeDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.TestType
  • Parsec DefUnitIdDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.UnitId
  • Parsec UnitIdDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.UnitId

    The textual format for UnitId coincides with the format GHC accepts for -package-id.

  • Parsec UnqualComponentNameDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.UnqualComponentName
  • Parsec VersionDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.Version
  • Parsec VersionRangeDefined in Cabal-syntax-3.18.1.0 · Distribution.Types.VersionRange.Internal
    Example1 expression
    simpleParsec "^>= 3.4" :: Maybe VersionRangeJust (MajorBoundVersion (mkVersion [3,4]))

    Small history:

    -any and -none removed in 3.4 Use >=0 and <0 instead.

    Example1 expression
    map (`simpleParsec'` "-none") [CabalSpecV3_0, CabalSpecV3_4] :: [Maybe VersionRange][Just (EarlierVersion (mkVersion [0])),Nothing]

    Set operations are introduced in 3.0

    Example1 expression
    map (`simpleParsec'` "^>= { 1.2 , 1.3 }") [CabalSpecV2_4, CabalSpecV3_0] :: [Maybe VersionRange][Nothing,Just (UnionVersionRanges (MajorBoundVersion (mkVersion [1,2])) (MajorBoundVersion (mkVersion [1,3])))]

    ^>= is introduced in 2.0

    Example1 expression
    map (`simpleParsec'` "^>=1.2") [CabalSpecV1_24, CabalSpecV2_0] :: [Maybe VersionRange][Nothing,Just (MajorBoundVersion (mkVersion [1,2]))]

    -none is introduced in 1.22

    Example1 expression
    map (`simpleParsec'` "-none") [CabalSpecV1_20, CabalSpecV1_22] :: [Maybe VersionRange][Nothing,Just (EarlierVersion (mkVersion [0]))]

    Operators are introduced in 1.8. Issues only a warning.

    Example1 expression
    map (`simpleParsecW'` "== 1 || ==2") [CabalSpecV1_6, CabalSpecV1_8] :: [Maybe VersionRange][Nothing,Just (UnionVersionRanges (ThisVersion (mkVersion [1])) (ThisVersion (mkVersion [2])))]

    Wild-version ranges are introduced in 1.6. Issues only a warning.

    Example1 expression
    map (`simpleParsecW'` "== 1.2.*") [CabalSpecV1_4, CabalSpecV1_6] :: [Maybe VersionRange][Nothing,Just (IntersectVersionRanges (OrLaterVersion (mkVersion [1,2])) (EarlierVersion (mkVersion [1,3])))]
  • Parsec ExtensionDefined in Cabal-syntax-3.18.1.0 · Language.Haskell.Extension
  • Parsec LanguageDefined in Cabal-syntax-3.18.1.0 · Language.Haskell.Extension
  • Parsec BoolDefined in Cabal-syntax-3.18.1.0 · Distribution.Parsec
  • FieldGrammar Parsec ParsecFieldGrammarDefined in Cabal-syntax-3.18.1.0 · Distribution.FieldGrammar.Parsec
  • Parsec a => Parsec (MQuoted a)Defined in Cabal-syntax-3.18.1.0 · Distribution.FieldGrammar.Newtypes
  • Parsec a => Parsec (Identity a)Defined in Cabal-syntax-3.18.1.0 · Distribution.Parsec
  • Parsec a => Parsec (Last a)Defined in Cabal-syntax-3.18.1.0 · Distribution.Parsec
  • Parsec (RelativePathNT from to)Defined in Cabal-syntax-3.18.1.0 · Distribution.FieldGrammar.Newtypes
  • Parsec (SymbolicPathNT from to)Defined in Cabal-syntax-3.18.1.0 · Distribution.FieldGrammar.Newtypes
  • Parsec (SymbolicPathX 'AllowAbsolute from to)Defined in Cabal-syntax-3.18.1.0 · Distribution.Utils.Path
  • Parsec (SymbolicPathX 'OnlyRelative from to)Defined in Cabal-syntax-3.18.1.0 · Distribution.Utils.Path
  • (Newtype a b, Sep sep, Parsec b) => Parsec (List sep b a)Defined in Cabal-syntax-3.18.1.0 · Distribution.FieldGrammar.Newtypes
  • (Newtype a b, Sep sep, Parsec b) => Parsec (NonEmpty' sep b a)Defined in Cabal-syntax-3.18.1.0 · Distribution.FieldGrammar.Newtypes
  • (Newtype a b, Ord a, Sep sep, Parsec b) => Parsec (Set' sep b a)Defined in Cabal-syntax-3.18.1.0 · Distribution.FieldGrammar.Newtypes
newtypenewtype ParsecParser a
#
Instances9Monad, Functor, MonadFail, Applicative, Alternative, MonadPlus, …

CabalParsing and diagnostics

Warnings

datadata PWarnType

Type of parser warning. We do classify warnings.

Different application may decide not to show some, or have fatal behaviour on others

Constructors

Instances9Bounded, Enum, Eq, Ord, Show, Generic, …
datadata PWarning
Instances7Eq, Ord, Show, Generic, NFData, Binary, …
datadata PWarningWithSource src
#
Instances6Functor, Eq, Ord, Show, Generic, Rep
datadata PSource src

The source of a parse error

Instances8Functor, Eq, Ord, Show, Generic, NFData, …

Errors

datadata PError

Parser error.

Instances5Show, Generic, NFData, Binary, Rep
datadata PErrorWithSource src
#
Instances4Functor, Show, Generic, Rep

Position

datadata Position

1-indexed row and column positions in a file.

Constructors

Instances7Eq, Ord, Show, Generic, NFData, Binary, …

Utilities