What's the usual approach to bidirectional type checking for applications of lambdas without annotations? Synthesize func type A -> B containing a metavar, check arg type against A, have checking unify and return substitutions that you apply to B?
Conversation
The "traditional" bidirectional approach is to give up, and expect annotations at bare beta-redexes.
You can do a little better by adopting the "Let Arguments Go First" approach [1], but I'm pretty sure anything more would require HM.
[1]
4
8
You’re unable to view this Tweet because this account owner limits who can view their Tweets. Learn more
You’re unable to view this Tweet because this account owner limits who can view their Tweets. Learn more
You’re unable to view this Tweet because this account owner limits who can view their Tweets. Learn more
Are you ok with having coercive subtyping? Saw that in some of Luo's papers, and it seemed handy!
You’re unable to view this Tweet because this account owner limits who can view their Tweets. Learn more
What about the presentation did you find weird?
1


