q4c12-twofinger: Efficient alternating finger trees

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 efficient alternating sequences based on finger trees. These can represent sequences made up of two types of element, e and a where two of the same type of element cannot follow each other directly.

Four different flavours are provided, isomorphic to ([(a, e)], a), ([(e, a)], e), [(a, e)], and [(e, a)].

Cons-like operations are O(1) amortised, and append operations are O(log(min(n, m))) amortised.

For more details, please see the Haddock documentation of Q4C12.TwoFinger.


[Skip to Readme]

Properties

Versions 0, 0.0.0.1, 0.0.0.1, 0.0.0.2, 0.1, 0.2
Change log CHANGELOG.markdown
Dependencies base (>=4.9.1.0 && <4.11), bifunctors (>=5.4.2 && <5.5), deepseq (>=1.4.3.0 && <1.5), QuickCheck (>=2.10.1 && <2.11), semigroupoids (>=5.2.1 && <5.3), streams (>=3.3 && <3.4) [details]
License BSD-2-Clause
Author quasicomputational <quasicomputational@gmail.com>
Maintainer quasicomputational <quasicomputational@gmail.com>
Category Data Structures
Home page https://github.com/quasicomputational/mega/tree/master/packages/twofinger
Bug tracker https://github.com/quasicomputational/mega/issues
Source repo head: git clone https://github.com/quasicomputational/mega
Uploaded by quasicomputational at 2017-12-08T21:21:52Z

Modules

[Index]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for q4c12-twofinger-0.0.0.1

[back to package description]

This package provides efficient alternating sequences based on finger trees. These can represent sequences made up of two types of element, e and a where two of the same type of element cannot follow each other directly.

Four different flavours are provided, isomorphic to ([(a, e)], a), ([(e, a)], e), [(a, e)], and [(e, a)].

Cons-like operations are O(1) amortised, and append operations are O(log(min(n, m))) amortised.

For more details, please see the Haddock documentation of Q4C12.TwoFinger.