It seems like the purpose of #:constructor-name is to get the default contsructor out of the way, so you can customize it:
#lang racket (struct hello (a b c) #:constructor-name hello-rep ) (define (hello) (hello-rep 1 2 3)) But this gives the error: duplicate definition for identifier in: hello Work arounds: 1. Use a guard, but this restricts the signature of the constructor. 2. Use a module to manage the names, but this is annoying. 3. Fall back on the make-hello convention instead of using the struct's name to construct it. This is particularly painful if you have code that already uses a default constructor name. You may want to change the struct's representation, but now you can't emulate the old constructor. I guess the forward looking programmer would always use the make-xxx convention to avoid this pitfall. Am I missing anything? -- Anthony Carrico
signature.asc
Description: OpenPGP digital signature
____________________ Racket Users list: http://lists.racket-lang.org/users