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>
126 lines
2.7 KiB
Text
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
|