Hello!
I’m pleased to announce the initial release of fresnel, an optics library optimizing for few dependencies, familiar tools, and decent error messages, without sacrificing functionality. fresnel is available at:
- https://hackage.haskell.org/package/fresnel-0.0.0.0
- https://github.com/fresnel/fresnel/releases/tag/0.0.0.0
Feature requests, issues, and other feedback are welcome at https://github.com/fresnel/fresnel/issues
Overview:
- Most of the optic types from lens and optics. No Indexed*, however.
- Compose optics using . much like in lens.
- Decent error messages, much like in optics.
- Few dependencies. I’m considering pulling At/Ixed into a new package to reduce the dependency list that much more, out of a desire to “pay for what you use.” I’m considering divesting the package of the profunctors dependency for much the same reason.
- Named for a real-world optic which has saved countless lives by its use in lighthouses around the world.
Best regards,
Rob
BNFC 2.9.4 is available at
- https://hackage.haskell.org/package/BNFC-2.9.4
- https://github.com/BNFC/bnfc/releases/tag/v2.9.4
(binaries and changelog)
Feedback welcome, problems at https://github.com/BNFC/bnfc/issues .
The BNF Converter (bnfc) is a wizard generating syntax trees, parser and
printer from a Labelled BNF (LBNF) grammar. It is currently able to
generate Haskell, Agda, C, C++, Java, and OCaml representations.
Supported parser generators: Happy, ocamlyacc, Menhir, ANTLR, CUP, Bison.
More information: http://bnfc.digitalgrammars.com
Changes in 2.9.4:
- LBNF: empty tokens types are now forbidden [#388]
- Agda: support position information via --functor [#405]
- C/C++: use size_t and -Wsign-conversion [#391]
- C++: repair broken --line-numbers [#390], regression in 2.9.2 by [#349]
- Haskell: fix a problem with layout stop words and top-level layout
[#399,#413]
- Haskell: generated test parser can parse several files now [#400]
- Java: use L.valueOf() instead of deprecated new L() for literal
classes L [#402]
- Ocaml: non-terminals in generated parser are now type-annotated [#407]
- Ocaml: sanitize bound variables in define
- Ocaml/Menhir: update parse error mechanism to Menhir 2021/12/30 [#414]
Cheers,
Andreas
--
Andreas Abel <>< Du bist der geliebte Mensch.
Department of Computer Science and Engineering
Chalmers and Gothenburg University, Sweden
andreas.abel(a)gu.se
http://www.cse.chalmers.se/~abela/