snix/users/Profpatsch/my-prelude/my-prelude.cabal
Profpatsch 444b67b010 feat(users/Profpatsch/my-prelude): add builder & divisible helpers
I’ve had enough of `show & stringToText` bullshit, let’s finally
create a trivial builder contravariant module that wraps
`Text.Builder` and `ByteString.Builder` and has a naming scheme that
does not collide with anything and that I can remember in my sleep.

Plus some experiments in making `Divisible` useful with `HasField`.

Change-Id: Ie25f78226d24eadf4c35353fe9db40b7683d82c3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12955
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2025-01-05 21:00:11 +00:00

129 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
Builder
Comparison
Debug
Divisive
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
, contravariant
, 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