/gref

Generalized references for Racket

Primary LanguageRacket

Gref

Gref is a proof-of-concept implementation of generalized references for Racket. For detailed documentation, refer to the reference.

Introduction

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.

How to Use

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:

Contribute

Submit an issue for bug reports and general discussion. Submit a pull request for patches. Otherwise, send an email with patches attached if any.