<div dir="ltr">I read a tweet about someone wistfully wishing there was some sort of "the" operator in a typed non-parensy language such that one could write something like this:<div><br></div><div>    Customer someFunc(the customer) { ... }</div><div><br></div><div>and have it mean:</div><div><br></div><div>    Customer someFunc(Customer customer) { ... }</div><div><br></div><div>Basically, an operator to take care of the common case where the variable name is just the lower-camel-case form of the type. As a Racket fan, I wanted to see if I could do this with a macro in Typed Racket. After some mucking around I had a form that handled the syntax correctly, but I couldn't use it in typed racket because the type checker and type annotations run as macros *before* my macro expands. As I read further, it seems to be the case that macros in typed racket are a very thorny problem and an area of open research. So is it currently possible to implement a "the" operator like the one shown above in typed racket? And if so, how would it be done?</div></div>