fclabels alternatives and similar packages
Based on the "data" category.
Alternatively, view fclabels alternatives based on common mentions on social networks and blogs.
-
proto-lens
API for protocol buffers using modern Haskell language and library patterns. -
base64-bytestring
Fast base64 encoding and decoding for Haskell. -
data-category
Library of categories, with categorical constructions on them -
interpolatedstring-perl6
QuasiQuoter for Perl6-style multi-line interpolated strings with q, qq and qc support. -
buffer-builder
Haskell library for efficiently building up buffers -
language-hcl
language-hcl contains HCL (Hashicorp Configuration Language) parsers and pretty-printers for the Haskell programming language -
finite-typelits
A type inhabited by finitely many values, indexed by type-level naturals. -
attoparsec-iteratee
An adapter to convert attoparsec Parsers into blazing-fast Iteratees -
range-set-list
Memory efficient sets with continuous ranges of elements. List based implementation. -
filesystem-trees
Traverse and manipulate directories as lazy rose trees -
syb-with-class
Fork of http://patch-tag.com/r/Saizan/syb-with-class -
schedule-planner
Calculate an ideal schedule layout from a set of timeslots -
data-structure-inferrer
A program that analyzes source code with a data-structure wildcard and suggests the right one. -
unamb-custom
Functional concurrency with unambiguous choice, using a custom scheduler. -
procrastinating-variable
Haskell values that cannot be evaluated immediately. -
resource-pool-catchio
A high-performance striped resource pooling implementation for Haskell
WorkOS - The modern identity platform for B2B SaaS
Do you think we are missing an alternative of fclabels or a related project?
README
fclabels: first class accessor labels
This package provides first class labels that can act as bidirectional record fields. The labels can be derived automatically using Template Haskell which means you don't have to write any boilerplate yourself. The labels are implemented as lenses and are fully composable. Lenses can be used to get, set and modify parts of a data type in a consistent way.
See Data.Label
for an introductory explanation.
Total and partial lenses
Internally lenses do not use Haskell functions directly, but are implemented as categories. Categories allow the lenses to be run in custom computational contexts. This approach allows us to make partial lenses that point to fields of multi-constructor datatypes in an elegant way.
See Data.Label.Partial
for the use of partial labels.
Monomorphic and polymorphic lenses
We have both polymorphic and monomorphic lenses. Polymorphic lenses allow updates that change the type. The types of polymorphic lenses are slightly more verbose than their monomorphic counterparts, but their usage is similar. Because monomorphic lenses are built by restricting the types of polymorphic lenses they are essentially the same and can be freely composed with eachother.
See Data.Label.Mono
and Data.Label.Poly
for the difference between
polymorphic and monomorphic lenses.
Using fclabels
To simplify working with labels we supply both a set of labels for Haskell's base types, like lists, tuples, Maybe and Either, and we supply a set of combinators for working with labels for values in the Reader and State monad.
See Data.Label.Base
and Data.Label.Monadic
for more information.
On Hackage: http://hackage.haskell.org/package/fclabels
Introduction: http://fvisser.nl/post/2013/okt/1/fclabels-2.0.html