1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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
      FieldParser
      Json
      Json.Enc
      MyLabel
      Test
      Postgres.Decoder
      Postgres.MonadPostgres
      RevList
      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-label
     , pa-error-tree
     , pa-pretty
     , aeson
     , aeson-better-errors
     , attoparsec
     , base64-bytestring
     , bytestring
     , case-insensitive
     , 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