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

name:                indexed-list-literals
version:             0.2.1.3
synopsis:            Type safe indexed list literals
homepage:            https://github.com/davidm-d/indexed-list-literals
license:             BSD3
license-file:        LICENSE
author:              David Millar-Durrant
maintainer:          dmillardurrant@gmail.com
description:
  This is an incredibly simple library, which makes writing lists where the length is known at compile time a little bit nicer.
  .
  If you write a function with the signature
  .
  > vector :: ILL input length output => input -> Vector length output
  then
  .
  > v :: Vector 3 Int
  > v = vector (1,2,3)
  >
  > x :: Vector 0 Double
  > x = vector $ ZeroTuple @Double
  >
  > y :: Vector 1 Double
  > y = vector (Only 1)
  >
  > z :: Vector 2 String
  > z = vector ("Hello", "World")
  .
  If want matrix literals you can write a function
  .
  > matrix :: (ILL row width ty, ILL matrix height row) => matrix -> Matrix width height ty
  then
  .
  > a :: Matrix 0 0 Bool
  > a = matrix $ ZeroTuple @(ZeroTuple Bool)
  >
  > b :: Matrix 1 2 String
  > b = matrix $ Only ("Hello","World")
  >
  > c :: Matrix 4 5 Double
  > c = matrix ((1,2,3,0,0)
  >            ,(4,5,6,0,0)
  >            ,(7,8,9,0,0)
  >            ,(0,0,0,0,0))
  The full code is in test\/Docs.hs
  .
  This only supports literals of length up to 20, though that can be easily extended using the code generator in src\/Data\/IndexedListLiterals.hs

-- copyright:           
category:            Data
build-type:          Simple
extra-source-files:  ChangeLog.md
cabal-version:       >=1.10

library
  exposed-modules:     Data.IndexedListLiterals
  -- other-modules:       
  -- other-extensions:    
  build-depends:       base >= 4.9 && < 5
                     , Only >= 0.1 && < 0.2
  hs-source-dirs:      src
  default-language:    Haskell2010

test-suite IndexedListLiterals-test
            type: exitcode-stdio-1.0
            main-is: Docs.hs
            build-depends:       base, indexed-list-literals, hspec
            hs-source-dirs:      test
            default-language:    Haskell2010

source-repository head
  type: git
  location: https://github.com/davidm-d/indexed-list-literals