Raw Metadata XML
<pkgmetadata>
<maintainer type="project">
<email>haskell@gentoo.org</email>
<name>Gentoo Haskell</name>
</maintainer>
<longdescription>
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
</longdescription>
</pkgmetadata>