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
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
      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
     , resourcet
     , scientific
     , time
     , error
     , exceptions
     , filepath
     , hspec
     , hspec-expectations-pretty-diff
     , mtl
     , profunctors
     , PyF
     , semigroupoids
     , selective
     , template-haskell
     , text
     , these
     , unix
     , unliftio
     , validation-selective
     , vector
     , ghc-boot
     -- for Pretty
     , aeson-pretty
     , hscolour
     , ansi-terminal
     , nicify-lib