focus: A general abstraction for manipulating elements of container data structures

[ containers, data, library, mit ] [ Propose Tags ]

An API for construction of free-form strategies of access and manipulation of elements of arbitrary data structures. It allows to implement efficient composite patterns, e.g., a simultaneous update and lookup of an element, and even more complex things.

Strategies are meant to be interpreted by the host data structure libraries. Thus they allow to implement all access and modification patterns of a data structure with just a single function, which interprets strategies.

This library provides pure and monadic interfaces, so it supports both immutable and mutable data structures.

Versions 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.5.1, 0.1.5.2
Dependencies base (>=4.6 && <4.8), loch-th (==0.2.*), placeholders (==0.1.*) [details]
License MIT
Copyright (c) 2014, Nikita Volkov
Author Nikita Volkov <nikita.y.volkov@mail.ru>
Maintainer Nikita Volkov <nikita.y.volkov@mail.ru>
Revised Revision 1 made by phadej at Mon May 23 08:54:12 UTC 2016
Category Containers, Data
Home page https://github.com/nikita-volkov/focus
Bug tracker https://github.com/nikita-volkov/focus/issues
Source repo head: git clone git://github.com/nikita-volkov/focus.git
Uploaded by NikitaVolkov at Fri Jun 20 15:55:36 UTC 2014
Distributions LTSHaskell:0.1.5.2, NixOS:0.1.5.2, Stackage:0.1.5.2, openSUSE:0.1.5.2
Downloads 9613 total (69 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Successful builds reported [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees