Skip to content

First class composable record labels for Haskell.

License

Notifications You must be signed in to change notification settings

yczhang89/fclabels

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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. Labels can be used to get, set
and modify parts of a datatype in a consistent way.

See Data.Label for an introductory explanation.

Internally lenses are not tied to Haskell functions directly, but are
implemented as arrows. Arrows 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 the Data.Label.Maybe module for the use of partial labels.

About

First class composable record labels for Haskell.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published