packages feed

ema-generics-0.10.0.0: ema-generics.cabal

cabal-version:      2.4
name:               ema-generics
version:            0.10.0.0
license:            AGPL-3.0-only
copyright:          2022 Sridhar Ratnakumar
maintainer:         srid@srid.ca
author:             Sridhar Ratnakumar
category:           Web
synopsis:           Generic deriving for Ema routes
bug-reports:        https://github.com/srid/ema/issues
homepage:           https://ema.srid.ca/
description:        Generic deriving for Ema routes
extra-source-files:
  CHANGELOG.md
  LICENSE
  README.md

common extensions
  default-extensions:
    NoStarIsType
    BangPatterns
    ConstraintKinds
    DataKinds
    DeriveDataTypeable
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveLift
    DeriveTraversable
    DerivingStrategies
    DerivingVia
    EmptyCase
    EmptyDataDecls
    EmptyDataDeriving
    ExistentialQuantification
    ExplicitForAll
    FlexibleContexts
    FlexibleInstances
    GADTSyntax
    GeneralisedNewtypeDeriving
    ImportQualifiedPost
    KindSignatures
    LambdaCase
    MultiParamTypeClasses
    MultiWayIf
    NumericUnderscores
    OverloadedStrings
    PolyKinds
    PostfixOperators
    RankNTypes
    ScopedTypeVariables
    StandaloneDeriving
    StandaloneKindSignatures
    TupleSections
    TypeApplications
    TypeFamilies
    TypeOperators
    ViewPatterns

library
  import:           extensions

  -- Modules included in this executable, other than Main.
  -- other-modules:

  -- LANGUAGE extensions used by modules in this package.
  -- other-extensions:
  build-depends:
    , base              >=4.13.0.0 && <4.17.0.0.0
    , ema
    , generic-optics
    , generics-sop
    , optics-core
    , relude            >=1.0
    , sop-core
    , template-haskell

  mixins:
    base hiding (Prelude),
    relude (Relude as Prelude, Relude.Container.One),
    relude

  ghc-options:
    -Wall -Wincomplete-record-updates -Wincomplete-uni-patterns
    -Wmissing-deriving-strategies -Wunused-foralls -Wunused-foralls
    -fprint-explicit-foralls -fprint-explicit-kinds
    -fprint-potential-instances

  exposed-modules:
    Ema.Route.Generic
    Ema.Route.Generic.RGeneric
    Ema.Route.Generic.SubModel
    Ema.Route.Generic.SubRoute
    Ema.Route.Generic.TH
    Ema.Route.Generic.Verification

  other-modules:    GHC.TypeLits.Extra

  if impl(ghc >=9.2)
    other-modules:
      Ema.Route.Generic.Example
      GHC.TypeLits.Extra.Symbol

  hs-source-dirs:   src
  default-language: Haskell2010

  if impl(ghc >=8.10)
    ghc-options: -Wunused-packages

test-suite test-type-errors
  import:           extensions
  build-depends:
    , base
    , ema
    , ema-generics
    , generics-sop
    , raw-strings-qq
    , template-haskell
    , text
    , url-slug

  other-modules:    Deriving
  type:             exitcode-stdio-1.0
  main-is:          Spec.hs
  hs-source-dirs:   test/type-errors
  default-language: Haskell2010

  if impl(ghc >=8.10)
    ghc-options: -Wunused-packages