On Sun, May 09, 2021 at 10:23:34PM +0000, Sage Gerard wrote: > I have a project with 57 prefab structure types. I need to construct > instances using a local contract (module level contracts do not fit my needs > here). Since I cannot define guards, the solution is easy enough. > > (struct foo (num) #:prefab) > (define/contract make-foo (-> real? foo?) foo) > > Problem: I already have a few hundred constructor calls without > contracts. I could either A) rewrite them all to use contracted > constructors, or B) attach local contracts in a sweet spot so that I > don't have to rewrite anything else.
Is there any chance you could do the "rewriting" in a macro so you wouldn't actually have to change the few hundred constructor calls when you use option A)? -- hendrik > > I prefer option B, but it doesn't look like I can attach a local contract to > a constructor with `struct` alone, or even with an impersonator. When I hack > around to rebind or hide the constructor's identifier, I break compatibility > with `match` and `defstruct*`. > > If you were in my position, what would you do? > > -- > > ~slg > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/0a16cfbe-4789-a939-796e-5f6f9da21626%40sagegerard.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/20210510110509.cpg6jnil6th7xbsi%40topoi.pooq.com.

