https://github.com/sebastiaanvisser/fclabels
Last synced: about 1 month ago
Repository metadata:
First class composable record labels for Haskell.
- Host: GitHub
- URL: https://github.com/sebastiaanvisser/fclabels
- Owner: sebastiaanvisser
- License: other
- Created: 2009-08-07T12:49:06.000Z (over 15 years ago)
- Default Branch: master
- Last Pushed: 2021-12-19T23:11:34.000Z (about 3 years ago)
- Last Synced: 2024-10-29T22:29:30.163Z (about 2 months ago)
- Language: Haskell
- Homepage:
- Size: 350 KB
- Stars: 66
- Watchers: 9
- Forks: 18
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG
- License: LICENSE
Owner metadata:
- Name: Sebastiaan Visser
- Login: sebastiaanvisser
- Email:
- Kind: user
- Description:
- Website: http://fvisser.nl
- Location: Utrecht, Amsterdam, The Netherlands
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/54288?u=ccc1b7655cb547f450f20702777585d588105416&v=4
- Repositories: 48
- Last Synced at: 2023-04-13T15:37:02.365Z
- Profile URL: https://github.com/sebastiaanvisser
- Sponsor URL:
Committers metadata
Last synced: about 1 month ago
Total Commits: 357
Total Committers: 18
Avg Commits per committer: 19.833
Development Distribution Score (DDS): 0.485
Commits in past year: 0
Committers in past year: 0
Avg Commits per committer in past year: 0.0
Development Distribution Score (DDS) in past year: 0.0
Name | Commits | |
---|---|---|
Sebastiaan Visser | c****e@f****l | 184 |
Sebastiaan Visser | s****r@c****l | 87 |
Adam Bergmark | a****m@b****l | 29 |
Erik Hesselink | h****k@g****m | 28 |
Chris Eidhof | ce@t****m | 8 |
Erik Hesselink | e****k@t****m | 4 |
Erik Hesselink | e****k@p****m | 3 |
Ryan Scott | r****t@g****m | 2 |
Evan Laforge | q****n@g****m | 2 |
Bram Schuur | b****m@t****m | 2 |
Heather | H****r | 1 |
Alexey Khudyakov | a****y@g****m | 1 |
Matt Gambogi | m@g****m | 1 |
Mikhail Glushenkov | t****e@g****m | 1 |
Oleg Grenrus | o****s@i****i | 1 |
Potato Hatsue | 1****7@q****m | 1 |
mgsloan | m****n@m****) | 1 |
唐鳳 | a****t@a****g | 1 |
Issue and Pull Request metadata
Last synced: about 1 month ago
Package metadata
- Total packages: 1
-
Total downloads:
- hackage: 75,090 total
- Total dependent packages: 4
- Total dependent repositories: 217
- Total versions: 55
- Total maintainers: 3
hackage: fclabels
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 or see the introductory blog post at http://fvisser.nl/post/2013/okt/1/fclabels-2.0.html Total and partial lenses Internally lenses do not used 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. Changelog from 2.0.4 to 2.0.5
- Homepage: https://github.com/sebastiaanvisser/fclabels
- Licenses: BSD-3-Clause
- Latest release: 2.0.5 (published over 4 years ago)
- Last Synced: 2024-11-11T03:08:10.964Z (about 1 month ago)
- Versions: 55
- Dependent Packages: 4
- Dependent Repositories: 217
- Downloads: 75,090 Total
-
Rankings:
- Downloads: 1.769%
- Dependent repos count: 1.91%
- Dependent packages count: 4.566%
- Average: 5.467%
- Forks count: 9.036%
- Stargazers count: 10.054%
- Maintainers (3)
Dependencies
- base <5 benchmark
- criterion <1.6 benchmark
- fclabels * benchmark
- base >=4.5 && <4.17
- base-orphans >=0.8.2 && <0.9
- mtl >=1.0 && <2.3
- template-haskell >=2.2 && <2.19
- transformers >=0.2 && <0.6
- HUnit >=1.2 && <1.7 test
- base <5 test
- fclabels * test
- mtl * test
- template-haskell * test
- transformers * test