snix/users/Profpatsch/my-prelude/my-prelude.cabal
Profpatsch 722499d8a9 feat(users/Profpatsch/whatcd-resolver): show json val on parse err
The json parsing library gives us an error path where the parse
failed, which means we can index into the path to show the json value
that failed us.

This can be quite expensive (and large!) of course, but the error
message clarity is worth it methinks.

Change-Id: Icacbd799254aaecd4a939ca13e6070d68a78138d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12952
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2025-01-04 21:47:34 +00:00

126 lines
2.7 KiB
Text

cabal-version: 3.0
name: my-prelude
version: 0.0.1.0
author: Profpatsch
maintainer: mail@profpatsch.de
common common-options
ghc-options:
-Wall
-Wno-type-defaults
-Wunused-packages
-Wredundant-constraints
-fwarn-missing-deriving-strategies
-- See https://downloads.haskell.org/ghc/latest/docs/users_guide/exts.html
-- for a description of all these extensions
default-extensions:
-- Infer Applicative instead of Monad where possible
ApplicativeDo
-- Allow literal strings to be Text
OverloadedStrings
-- Syntactic sugar improvements
LambdaCase
MultiWayIf
-- Makes the (deprecated) usage of * instead of Data.Kind.Type an error
NoStarIsType
-- Convenient and crucial to deal with ambiguous field names, commonly
-- known as RecordDotSyntax
OverloadedRecordDot
-- does not export record fields as functions, use OverloadedRecordDot to access instead
NoFieldSelectors
-- Record punning
RecordWildCards
-- Improved Deriving
DerivingStrategies
DerivingVia
-- Type-level strings
DataKinds
-- to enable the `type` keyword in import lists (ormolu uses this automatically)
ExplicitNamespaces
-- allows defining pattern synonyms, but also the `import Foo (pattern FooPattern)` import syntax
PatternSynonyms
default-language: GHC2021
library
import: common-options
hs-source-dirs: src
exposed-modules:
MyPrelude
Aeson
Arg
AtLeast
Comparison
Debug
Json
Json.Enc
Test
Postgres.Decoder
Postgres.MonadPostgres
ValidationParseT
Parse
Pretty
Seconds
Tool
-- Modules included in this executable, other than Main.
-- other-modules:
-- LANGUAGE extensions used by modules in this package.
-- other-extensions:
build-depends:
base >=4.15 && <5
, pa-prelude
, pa-label
, pa-error-tree
, pa-json
, pa-pretty
, pa-field-parser
, aeson
, aeson-better-errors
, base64-bytestring
, bytestring
, containers
, foldl
, unordered-containers
, resource-pool
, resourcet
, scientific
, time
, error
, exceptions
, filepath
, hspec
, hspec-expectations-pretty-diff
, hs-opentelemetry-api
, monad-logger
, mtl
, postgresql-simple
, profunctors
, PyF
, semigroupoids
, selective
, template-haskell
, text
, these
, unix
, unliftio
, validation-selective
, vector
, ghc-boot
-- for Pretty
, aeson-pretty
, hscolour
, ansi-terminal
, nicify-lib