Name : ghc-vec
| |
Version : 0.1
| Vendor : obs://build_opensuse_org/devel:languages:haskell
|
Release : 1.5
| Date : 2019-02-13 04:02:04
|
Group : Development/Libraries/Haskell
| Source RPM : ghc-vec-0.1-1.5.src.rpm
|
Size : 0.35 MB
| |
Packager : (none)
| |
Summary : Vec: length-indexed (sized) list
|
Description :
This package provides length-indexed (sized) lists, also known as vectors.
\' data Vec n a where VNil :: Vec \'Nat.Z a (:::) :: a -> Vec n a -> Vec (\'Nat.S n) a \'
The functions are implemented in three flavours:
* __naive__: with explicit recursion. It\'s simple, constraint-less, yet slow.
* __pull__: using \'Fin n -> a\' representation, which fuses well, but makes some programs hard to write. And
* __inline__: which exploits how GHC dictionary inlining works, unrolling recursion if the size of \'Vec\' is known statically.
As best approach depends on the application, \'vec\' doesn\'t do any magic transformation. Benchmark your code.
This package uses [fin](https://hackage.haskell.org/package/fin), i.e. not \'GHC.TypeLits\', for indexes.
See [Hasochism: the pleasure and pain of dependently typed haskell programming](https://doi.org/10.1145/2503778.2503786) by Sam Lindley and Conor McBride for answers to /how/ and /why/. Read [APLicative Programming with Naperian Functors](https://doi.org/10.1007/978-3-662-54434-1_21) by Jeremy Gibbons for (not so) different ones.
=== Similar packages
* [linear](https://hackage.haskell.org/package/linear) has \'V\' type, which uses \'Vector\' from \'vector\' package as backing store. \'Vec\' is a real GADT, but tries to provide as many useful instances (upto \'lens\').
* [vector-sized](https://hackage.haskell.org/package/vector-sized) Great package using \'GHC.TypeLits\'. Current version (0.6.1.0) uses \'finite-typelits\' and \'Int\' indexes.
* [sized-vector](https://hackage.haskell.org/package/sized-vector) depends on \'singletons\' package. \'vec\' isn\'t light on dependencies either, but try to provide wide GHC support.
* [fixed-vector](https://hackage.haskell.org/package/fixed-vector)
* [sized](https://hackage.haskell.org/package/sized) also depends on a \'singletons\' package. The \'Sized f n a\' type is generalisation of \'linear\'\'s \'V\' for any \'ListLike\'.
* [clash-prelude](https://hackage.haskell.org/package/clash-prelude) is a kitchen sink package, which has \'CLaSH.Sized.Vector\' module. Also depends on \'singletons\'.
|
RPM found in directory: /packages/linux-pbone/ftp5.gwdg.de/pub/opensuse/repositories/devel:/languages:/haskell:/lts:/13/openSUSE_Tumbleweed/x86_64 |
Hmm ... It's impossible ;-) This RPM doesn't exist on any FTP server
Provides :
ghc-vec
ghc-vec(x86-64)
libHSvec-0.1-Aq5tLv325vuFNF2DlYFG6-ghc8.6.3.so()(64bit)
Requires :