Conversation
cfa85d5 to
aa5afb9
Compare
|
Should evaluation order affect typechecking? In the expression (+ x (begin (assert x integer?) x))the right-hand Do we want the union of all propositions to apply to each argument? Probably not - if the left-hand |
RFC for accumulating unconditional propositional when typechecking a function application (accumulate from left-to-right, same as evaluation will go)
No, because that could be unsound. In this application, we don't want to check the 1st argument to I think we need to conservatively reject your example. |
|
Would it be helpful to describe this as checking function application in terms of its equivalent expansion into A-normal form to help with intuition as for why it works and is correct? i.e. we're basically leveraging the fact that checking this program: (fun arg1 arg2 ...)is equivalent to checking this one: (let* ([x1 arg1]
[x2 arg2]
...)
(fun x1 x2 ...))(where the |
RFC for #707
Goals:
typecheck/tc-app/*)