Name: ListLike
Version: 4.7.5
License: BSD3
Maintainer: David Fox <dsf@seereason.com>, Andreas Abel
Author: John Goerzen
Copyright: Copyright (c) 2007-2008 John Goerzen
license-file: COPYRIGHT
Category: list, string, text, bytestring, vector
Cabal-Version: >= 1.10
Build-Type: Simple
homepage: http://github.com/ddssff/listlike
synopsis: Generalized support for list-like structures
Description: Generalized support for list-like structures in Haskell.
 .
 The ListLike module provides a common interface to the various Haskell
 types that are list-like.  Predefined interfaces include standard
 Haskell lists, Arrays, ByteStrings, and lazy ByteStrings.  Custom
 types can easily be made ListLike instances as well.
 .
 ListLike also provides for String-like types, such as String and
 ByteString, for types that support input and output, and for types that can handle
 infinite lists.
Stability: Stable

Tested-With:
  GHC == 9.0.1
  GHC == 8.10.4
  GHC == 8.8.4
  GHC == 8.6.5
  GHC == 8.4.4
  GHC == 8.2.2
  GHC == 8.0.2
  GHC == 7.10.3

extra-source-files:
  README.md
  CHANGELOG.md

Library
  default-language: Haskell2010
  GHC-Options: -Wall
  Hs-Source-Dirs: src
  Exposed-Modules: Data.ListLike
          Data.ListLike.Base
          Data.ListLike.Chars
          Data.ListLike.CharString
          Data.ListLike.FoldableLL
          Data.ListLike.IO
          Data.ListLike.Instances
          Data.ListLike.String
          Data.ListLike.Text
          Data.ListLike.Text.Builder
          Data.ListLike.Text.Text
          Data.ListLike.Text.TextLazy
          Data.ListLike.UTF8
          Data.ListLike.Utils
          Data.ListLike.Vector
          Data.ListLike.Vector.Generic
          Data.ListLike.Vector.Storable
          Data.ListLike.Vector.Unboxed
          Data.ListLike.Vector.Vector
          Data.ListLike.DList
          Data.ListLike.FMList
  -- Other-Modules: Data.ConfigFile.Lexer
  Build-Depends: base       >= 4.8   && < 5
                ,containers >= 0.3   && < 0.7
                ,bytestring >= 0.9.1 && < 0.12
                ,array      >= 0.3   && < 0.6
                ,text       >= 0.11  && < 1.3
                ,vector     >= 0.5   && < 0.13
                ,dlist      >= 0.7   && < 1.1
                ,fmlist     >= 0.8   && < 0.10
                ,utf8-string >= 0.3.1 && < 1.1
                ,deepseq

  -- Remark: Atm, we don't comply with the Haskell Package Versioning Policy
  --   https://pvp.haskell.org/
  -- > §6. Client defines orphan instance.
  -- > If a package defines an orphan instance, it MUST depend on the
  -- > minor version of the packages that define the data type and the
  -- > type class to be backwards compatible. For example,
  -- > build-depends: mypkg >= 2.1.1 && < 2.1.2.
  --
  -- Since ListLike defines orphan instances, we would need to include
  -- the minor version number in the upper bounds.
  -- (See issues #7 and #10.)
  -- However, this could involve a maintenance to relax upper bounds.

  If !impl(ghc >= 8.4)
    Build-Depends: semigroups >= 0.16 && < 0.20

  if impl(ghc >= 8.0)
    ghc-options:  -Wcompat

Test-suite listlike-tests
  default-language: Haskell2010
  Hs-source-dirs: testsrc
  Main-is:        runtests.hs
  Type:           exitcode-stdio-1.0

  Other-modules:  TestInfrastructure
  Build-depends:   base
                  ,ListLike
                  ,HUnit      >= 1.2 && < 2
                  ,QuickCheck >= 2.4 && < 3
                  ,random     >= 1   && < 2
                  ,array
                  ,bytestring
                  ,containers
                  ,dlist
                  ,fmlist
                  ,text
                  ,vector
                  ,utf8-string
  If !impl(ghc >= 8.4)
    Build-Depends: semigroups >= 0.16 && < 0.20

source-repository head
  type:     git
  location: git://github.com/ddssff/listlike.git
