-- Initial AspectAG.cabal generated by cabal init.  For further
-- documentation, see http://haskell.org/cabal/users-guide/

-- The name of the package.
name:                AspectAG

-- The package version.  See the Haskell package versioning policy (PVP)
-- for standards guiding when and how versions should be incremented.
-- https://wiki.haskell.org/Package_versioning_policy
-- PVP summary:      +-+------- breaking API changes
--                   | | +----- non-breaking API additions
--                   | | | +--- code changes with no API change
version:             0.6.0.0

-- A short (one-line) description of the package.
synopsis:            Strongly typed Attribute Grammars implemented using type-level programming.

-- A longer description of the package.
description: An EDSL implementing strongly typed -and strongly kinded!- attribute grammars
             implemented using type-level programming. We make an effort to encode precise EDSL
             type errors.

-- URL for the project homepage or repository.
homepage:            www.fing.edu.uy/~jpgarcia/AspectAG

-- The license under which the package is released.
license:             GPL-3

-- The file containing the license text.
license-file:        LICENSE

-- The package author(s).
author:              Juan GarcĂ­a Garland, Marcos Viera

-- An email address to which users can send suggestions, bug reports, and
-- patches.
maintainer:          jpgarcia@fing.edu.uy

category:            Language

build-type:          Simple

-- Extra files to be distributed with the package, such as examples or a
-- README.
extra-source-files:  ChangeLog.md,
                     LICENSE



--source-repository:
--    type: git
--    location: https://gitlab.fing.edu.uy/jpgarcia/attribute-grammars

-- Constraint on the version of Cabal needed to build this package.
cabal-version:       >=1.10


library
  -- Modules exported by the library.
  exposed-modules:     Language.Grammars.AspectAG,
                       Language.Grammars.AspectAG.TH,
                       Language.Grammars.AspectAG.HList,
                       Language.Grammars.AspectAG.RecordInstances

-- LANGUAGE extensions used by modules in this package.
  other-extensions:    TypeInType,
                       TypeFamilies,
                       FlexibleContexts,
                       ScopedTypeVariables,
                       NoMonomorphismRestriction,
                       AllowAmbiguousTypes,
                       ImplicitParams,
                       ExtendedDefaultRules,
                       UnicodeSyntax,
                       DataKinds,
                       GADTs,
                       KindSignatures,
                       TypeOperators,
                       MultiParamTypeClasses,
                       FlexibleInstances,
                       StandaloneDeriving,
                       UndecidableInstances,
                       FunctionalDependencies,
                       ConstraintKinds,
                       PolyKinds,
                       RankNTypes,
                       InstanceSigs

  -- Other library packages from which modules are imported.
  build-depends:       base >=4.11 && <4.15,
                       tagged >=0.8,
                       containers >= 0.5,
                       template-haskell >= 2.13,
                       mtl >= 2.0,
                       requirements >=0.6 && <0.7,
                       poly-rec >=0.6 && <0.7
 

  -- Directories containing source files.
  hs-source-dirs:      src

  -- Base language which the package is written in.
  default-language:    Haskell2010

-- Test-Suite test-Repmin
--     type:             exitcode-stdio-1.0
--     main-is:          test/Repmin.hs
--     build-depends:    base >=4.11 && <4.12,
--                       tagged >=0.8 && <0.9,
--                       AspectAG >= 0.4,
--                       QuickCheck
--     default-language: Haskell2010

-- Test-Suite test-Repmin-TH
--     type:             exitcode-stdio-1.0
--     main-is:          test/RepminTH.hs
--     build-depends:    base >=4.11 && <4.12,
--                       tagged >=0.8 && <0.9,
--                       AspectAG >= 0.4,
--                       QuickCheck
--     default-language: Haskell2010
    
-- Test-Suite test-Arith
--     type:             exitcode-stdio-1.0
--     main-is:          test/Arith.hs
--     build-depends:    base >=4.11 && <4.12,
--                       containers >= 0.5,
--                       tagged >=0.8 && <0.9,
--                       AspectAG >= 0.4,
--                       QuickCheck
--     default-language: Haskell2010

-- Test-Suite test-Graphs
--     type:             exitcode-stdio-1.0
--     main-is:          test/Graphs.hs
--     build-depends:    base >=4.11 && <4.12,
--                       tagged >=0.8 && <0.9,
--                       AspectAG >= 0.4,
--                       containers >= 0.5,
--                       QuickCheck
--     default-language: Haskell2010