Name:                fcf-containers
Synopsis:            Data structures and algorithms for first-class-families
Description:
    Package fcf-containers provides type-level functions and data structures
    that operate on type-level computations. Specifically, we mimick the
    contents of containers-package and show how these can be used. Everything is
    based on the ideas given in the first-class-families -package.
Homepage:            https://github.com/gspia/fcf-containers
Version:             0.5.0
Build-type:          Simple
Author:              gspia
Maintainer:          iahogsp@gmail.com
License:             BSD3
License-file:        LICENSE
Category:            Other
Copyright:           gspia (c) 2020-
Extra-source-files:  README.md, TODO.md, CHANGELOG.md, default.nix, shell.nix
Cabal-version:       1.24
Tested-With:         GHC ==8.8.1 || ==8.6.5 || ==8.4.4 || ==8.2.2

library
  hs-source-dirs:    src
  exposed-modules:   Fcf.Data.MapC
                   , Fcf.Data.NatMap
                   , Fcf.Data.Tree
                   , Fcf.Data.Set
                   , Fcf.Data.Text
                   , Fcf.Alg.List
                   , Fcf.Alg.Sort
                   , Fcf.Alg.Symbol
                   , Fcf.Alg.Tree
                   , Fcf.Alg.Morphism
  build-depends:     base >= 4.9 && < 4.14
                   , first-class-families >= 0.8 && < 0.9
  ghc-options:      -Wall
  default-language:  Haskell2010
  -- ghc-options:
     --  -O2


Executable orbits
  hs-source-dirs:   examples,src
  main-is:          Orbits.hs
  default-language: Haskell2010
  other-modules:    Fcf.Alg.Morphism
                  , Fcf.Alg.List
                  , Fcf.Alg.Tree
                  , Fcf.Data.Tree
  build-depends:    base
                  , first-class-families
  -- ghc-options:
     --  -ddump-simpl
     --  -O2

Executable haiku
  hs-source-dirs:   examples,src
  main-is:          Haiku.hs
  default-language: Haskell2010
  other-modules:    Fcf.Alg.Morphism
                  , Fcf.Alg.List
                  , Fcf.Alg.Symbol
                  , Fcf.Data.Tree
                  , Fcf.Data.MapC
                  , Fcf.Data.Set
                  , Fcf.Data.Text
  build-depends:    base
                  , first-class-families

test-suite fcf-test
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             test.hs
  default-language:    Haskell2010
  build-depends:
      base
    , first-class-families
    , fcf-containers

test-suite fcf-doctest
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             doctest.hs
  default-language:    Haskell2010
  if impl(ghc >= 8.6)
    build-depends:
      base,
      doctest,
      Glob
  else
    buildable: False

source-repository head
  type:     git
  location: https://github.com/gspia/fcf-containers
