samth
2020-12-18 14:30:48

Yes, that’s right


samth
2020-12-18 14:32:07

And there’s lots of published work on Typed Racket, you might find Andrew Kent’s dissertation or PLDI 2016 paper more relevant to current typed Racket than my dissertation


phanthero
2020-12-18 16:14:46

Could someone explain the meaning of #mutable? (struct foo (bar quux) #:transparent #:mutable)


phanthero
2020-12-18 16:14:54

Does this just mean we can use set! on these?


phanthero
2020-12-18 16:15:05

like, only set! foo?


phanthero
2020-12-18 16:15:13

or like set-foo-bar as well?


soegaard2
2020-12-18 16:15:16

It means you can use set-foo-bar!


phanthero
2020-12-18 16:15:43

can I do set-foo! as well?


soegaard2
2020-12-18 16:16:00

No, but you can use set-foo-quux!


phanthero
2020-12-18 16:16:10

thank you!!


soegaard2
2020-12-18 16:16:37

soegaard2
2020-12-18 16:17:14

In your example, the #:mutable means all fields are mutable.


kellysmith12.21
2020-12-19 04:17:56

I’ve noticed that rename-out does not affect the object-name of the value. Is this behavior intended?


samth
2020-12-19 04:19:15

yes, rename-out is like (let ([x y]) ...) — you have a new name to refer to y with, but nothing about the value refered to by y changes


kellysmith12.21
2020-12-19 04:21:07

I see.


kellysmith12.21
2020-12-19 04:25:13

(unrelated) If I reprovide a contracted value with contract-out does that replace the old contract or wrap the value in another contract?


samth
2020-12-19 04:28:59

another contract


kellysmith12.21
2020-12-19 04:41:23

I get the impression that there’s no way to remove a contract from a value?


samth
2020-12-19 04:42:35

right


cdep.illabout_slack
2020-12-19 07:15:29

@samth Oh, I’m sorry, I didn’t realize it was your dissertation!


cdep.illabout_slack
2020-12-19 07:17:05

I started reading it yesterday and I did want to say that it is very well written. I’m only on chapter 3 or 4 or so, but I’m really enjoying it so far. I’m looking forward to get to the typing judgments for the occurrence typing.