buildable: Typeclass for builders of linear data structures

[ data, library, mit ] [ Propose Tags ]

Various linear data structures can be expensive to construct in a repetitive fashion. For example, to append a single value to the end of a list is O(n), and as such doing so repeatedly is recommended against.

As such, to efficiently construct such structures we have the notion of a builder. This can be used to more efficiently prepend and append values, and at the end we "run" the builder to construct the overall value.

This module provides an abstraction over various builders for specific data structures. It also aims to minimise the number of functions required to add various values to the builder by using a typeclass and newtype wrappers.

To construct a value from it's builder:

  1. Start with either mempty for an empty Builder, or if you have an initial value use fromValue.

  2. Add initial values to the front or back using prepend / <| or append / |> respectively.

  3. Once you've finished constructing your builder, create your final value with build.

Note: all instances are defined for both strict and lazy ByteString and Text values.

Modules

[Index]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3
Change log changelog
Dependencies base (>=4.6 && <4.7), bytestring (>=0.10.0.0 && <0.11), containers (>=0.5 && <0.6), dlist (>=0.5 && <0.8), text (>=0.11.3.0 && <1.12) [details]
License MIT
Author Ivan Lazar Miljenovic
Maintainer Ivan.Miljenovic@gmail.com
Category Data
Source repo head: darcs get http://hub.darcs.net/ivanm/buildable
Uploaded by IvanMiljenovic at 2014-09-08T13:40:53Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 3265 total (11 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]