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, 1, 1.0.1, 1.0.1.1, 1.0.1.2
Dependencies base (>=4.6 && <5), transformers (==0.5.*) [details]
License MIT
Copyright (c) 2014, Nikita Volkov
Author Nikita Volkov <nikita.y.volkov@mail.ru>
Maintainer Nikita Volkov <nikita.y.volkov@mail.ru>
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 Sat Jul 28 11:54:30 UTC 2018
Distributions LTSHaskell:0.1.5.2, NixOS:1.0.1.2, Stackage:1.0.1.2
Downloads 10206 total (105 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-07-28 [all 1 reports]
Hackage Matrix CI

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees