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 [faq] 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, 1.0.1.3
Dependencies base (>=4.9 && <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 Thu Apr 4 20:29:17 UTC 2019
Distributions LTSHaskell:1.0.1.3, NixOS:1.0.1.3, Stackage:1.0.1.3
Downloads 11727 total (203 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2019-04-04 [all 1 reports]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees