Install this package:
emerge -a dev-haskell/indexed-list-literals
If the package is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask dev-haskell/indexed-list-literals
Or alternatively:
emerge --autounmask-write -a dev-haskell/indexed-list-literals
| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 0.2.1.3 | 8 | ~amd64 | 0/0.2.1.3 |
<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>
| Type | File | Size | Versions |
|---|---|---|---|
| DIST | indexed-list-literals-0.2.1.3.tar.gz | 4161 bytes | 0.2.1.3 |
| Type | File | Size |
|---|