If it’s just a “programming language”, than it seems to at least make it

From elsewhere

]]>Or there being monads at all in Haskell. Haskell added nothing that was not already present in Algol 60, apart from bald pretension.

It has a polymorphic type system and higher-order functions (I believe Algol 60 did not have closures). I’m not sure how to charitably interpret this statement, without concluding this is boring internet-comment flaming.

See Abel/Scherer, LMCS 2012. ]]>

You have indeed understood what I meant.

If you try to prove that typing is unique up to judgmental equality for the usual syntax, you run into a problem in the application case. Induction tells you that ?AB??CD, but you can’t conclude that A?C and B?D from that, which is what you need to get the proof to go through.

Adding annotations to applications and lambdas should fix this problem (and since you did it in Coq, it obviously does fix it). I didn’t read your Coq development closely enough to realize that this is what you were doing, but your explanation makes things make sense to me now.

]]>