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.

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 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, 1.0.1.4, 1.0.2, 1.0.3, 1.0.3.1, 1.0.3.2 (info)
Dependencies base (>=4.11 && <5), transformers (>=0.5 && <0.6) [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 2021-09-22T18:11:09Z
Distributions Arch:1.0.3.2, LTSHaskell:1.0.3.2, NixOS:1.0.3.2, Stackage:1.0.3.2
Reverse Dependencies 17 direct, 121 indirect [details]
Downloads 26414 total (207 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2021-09-25 [all 1 reports]