The yarr package

[ Tags: data-flow, data-structures, graphics, library, mit ] [ Propose Tags ]

Yarr is a new blazing fast dataflow framework (array library), mainly intented to process Storables (including all "primitive" numeric types) and fixed-vectors of them, for example coordinates, color components, complex numbers.

Yarr framework is inspired by repa library and inherits its features, including shape-polymorphism and auto-parallelism. Additionaly, the framework is polymorphic over type and arity of fixed-size vectors and supports neat flow operations over them. For example, you can convert colored image to greyscale like this:

let greyImage = zipElems (\r g b -> 0.21 * r + 0.71 * g + 0.07 * b) image

In some cases the library is considerably faster than repa. See benchmark results:

Shortcoming by design: lack of pure indexing interface.

To start with, read documentation in the root module: Data.Yarr.



Versions 0.9.1, 0.9.2, 1.2.3, 1.3.1, 1.3.2, 1.3.3,,,,,,
Change log
Dependencies base (>=4.6 && <4.10), deepseq (>=1.3 && <1.5), fixed-vector (==0.8.*), ghc-prim (>=0.3 && <0.6), missing-foreign (==0.1.1), primitive (==0.6.*), template-haskell (>=2.8 && <2.12) [details]
License MIT
Author Roman Leventov
Maintainer Dominic Steinitz <>
Category Data Structures, Data Flow, Graphics
Bug tracker
Source repository head: git clone
Uploaded Mon Jun 6 09:10:51 UTC 2016 by DominicSteinitz
Distributions NixOS:
Downloads 2293 total (13 in the last 30 days)
Rating 0.0 (0 ratings) [clear rating]
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2016-06-06 [all 1 reports]
Hackage Matrix CI




Maintainer's Corner

For package maintainers and hackage trustees