Gref is a proof-of-concept implementation of generalized references for Racket. For detailed documentation, refer to the reference.
As commonly known by Lispers, generalized references are infamously present in many Lisp systems, most notably Common Lisp with its magical modify macros such as ~setf~. They not only serve practical purposes, but also showcase powerful capabilities of syntactic abstraction, at which Racket excels. Nonetheless, those with a functional mind might prefer functional references even more infamously present in Haskell, for which see Lens and Glass.
This library can be installed through the Racket package manager.
The main entry points are the gref/base
and gref/syntax
modules
respectively for base functionalities and syntactic extensions, and
the gref
module combines these modules.
This library is split into the following packages:
- =gref-doc= provides the documentation;
- =gref-lib= provides the implementation;
- =gref-test= provides the tests;
- =gref= combines the non-test packages.
Submit an issue for bug reports and general discussion. Submit a pull request for patches. Otherwise, send an email with patches attached if any.