(define-struct foo (x y)
   #:positional-constructor make-foo1
   #:keyworded-cosntrutor make-foo2)


+1

The #:positional-constructor option would be really useful for another purpose:

I sometimes find myself creating custom constructors for structs and providing them under contracts. I currently have to do it in two modules to get the right names:

  foo-internal.ss

    #lang scheme
    (define-struct foo (...))
    (define (create-foo ...) ...)
    (provide/contract
     [struct foo ...]
     [create-foo ...]))

  foo.ss

    #lang scheme
    (require "foo-internal.ss")
    (provide (except-out (struct-out foo) make-foo)
                  (rename-out [create-foo make-foo]))

This addition would allow me to define a struct with "make-foo/ internal" (or something) as its uncontracted constructor name and define make-foo directly without the renaming shenanigans.

-- Dave
_________________________________________________
 For list-related administrative tasks:
 http://list.cs.brown.edu/mailman/listinfo/plt-dev

Reply via email to