ral: Random access lists

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

This package provides ordinary random access list, RAList, and also a length indexed variant, RAVec.

The data structure allows fast cons-operation (like ordinary list) but also fast random access (like non-functional arrays).

For lens or optics support see ral-lens and ral-optics packages respectively.

Similar packages

This packages don't provide length-indexed variant, and their RAList has opaque structure.


Versions 0.1, 0.2, 0.2, 0.2.1
Change log ChangeLog.md
Dependencies adjunctions (>=4.4 && <4.5), base (>=4.7 && <4.16), bin (>=0.1 && <0.2), deepseq (>= && <1.5), distributive (>=0.5.3 && <0.7), fin (>=0.2 && <0.3), hashable (>= && <1.4), indexed-traversable (>=0.1.1 && <0.2), QuickCheck (>=2.14.2 && <2.15), semigroupoids (>=5.3.5 && <5.4), semigroups (>=0.18.5 && <0.20) [details]
License GPL-2.0-or-later
Copyright (c) 2019-2021 Oleg Grenrus
Author Oleg Grenrus <oleg.grenrus@iki.fi>
Maintainer Oleg.Grenrus <oleg.grenrus@iki.fi>
Category Data, Dependent Types, Singletons
Home page https://github.com/phadej/vec
Bug tracker https://github.com/phadej/vec/issues
Source repo head: git clone https://github.com/phadej/vec.git(ral)
Uploaded by phadej at 2021-02-28T11:11:20Z


[Index] [Quick Jump]


Manual Flags


Depend on adjunctions to provide its instances


Depend on distributive to provide its instances. Turning on, disables adjunctions too.


Depend on semigroupoids to provide its instances, and traverse1.


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees