[plt-dev] some Racket proposals & implementation

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Tue Apr 6 14:37:40 EDT 2010

The current `define-struct' is among very few `define-' forms that
binds names not mentioned directly in the form. In that sense, it's
more like `require' or `open-package', so that's why `struct' seems
like a sensible name to me.

In the list below, I think `define-values/invoke-unit' is the only
other one that binds names not mentioned on the form, and it has always
bugged me. I think it would be better with a non-`define' name, too.
Maybe an `open' convention would be appropriate, though probably we
haven't had enough things like that for the convention to be
worthwhile.


At Tue, 6 Apr 2010 14:22:26 -0400, Sam Tobin-Hochstadt wrote:
> On Tue, Apr 6, 2010 at 2:00 PM, Matthias Felleisen <matthias at ccs.neu.edu> 
> wrote:
> > Can we inspect all define- names in our base and consider deleting the
> > define- part? Thanks -- Matthias
> 
> I thoroughly agree with Carl about this being a bad idea.
> 
> With that said, here's the list:
> 
> core definition forms:
>  define-values
>  define-syntaxes
>  define-values-for-syntax
>  define
>  define-for-syntax
>  define-syntax
> 
> versions of define-struct:
>  define-contract-struct
>  define-struct
>  define-struct/derived
>  define-struct/contract
> 
> class forms:
>  define/augment-final
>  define/override
>  define/private
>  define/public
>  define/augride
>  define/overment
>  define/pubment
>  define/override-final
>  define/public-final
>  define/augment
> 
> unit definition forms:
>  define-compound-unit
>  define-unit/s
>  define-unit-binding
>  define-unit/contract
>  define-unit/new-import-export
>  define-unit-from-context
>  define-compound-unit/infer
>  define-unit
>  define-signature
> 
> things that have to bind static info (like `define-struct'):
>  define-member-name
>  define-local-member-name
>  define-serializable-class*
>  define-serializable-class
>  define-match-expander
>  define-signature-form
>  define-namespace-anchor
>  define-sequence-syntax
>  define-opt/c
> 
> macros over existing definition forms:
>  define-values/invoke-unit
>  define-syntax-rule
>  define-values/invoke-unit/infer
>  define/contract
> -- 
> sam th
> samth at ccs.neu.edu
> _________________________________________________
>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-dev


Posted on the dev mailing list.