rntz@arntzenius·Mar 4, 2019PL type theory notation is wrong. It's not (Γ ⊢ e : A). It's (e : Γ ⊢ A). (hills I contemplate from afar but am unwilling to die on, #1)7438
rntz@arntzenius·Mar 4, 2019the type of "e" isn't "A", it's "Γ ⊢ A". the context Γ is as important as the type A, and the two belong together. for example, it matches more nicely with categorical semantics: e : Γ ⊢ A, so ⟦e⟧ : ⟦Γ⟧ → ⟦A⟧15
Brendan Zabarauskas@brendanzab·Mar 4, 2019It kind of reminds me of 'Contextual typing' that was brought up in the POPL keynote that I watched last night.11
Brendan Zabarauskas@brendanzabReplying to @brendanzab and @arntzeniusI guess I've always considered that both the term and the type are well formed under the context `Γ`. So you can have `Γ ⊢ A type` _and_ `Γ ⊢ e : A`11:16 PM · Mar 4, 2019·Twitter Web Client1 Like
Brendan Zabarauskas@brendanzab·Mar 4, 2019Replying to @brendanzab and @arntzeniusI'm by no means an expert though!1
Dad_jack@Iceland_jack·Mar 5, 2019Which is how glambda (https://github.com/goldfirere/glambda/blob/master/src/Language/Glambda/Exp.hs…) and Stitch (https://cs.brynmawr.edu/~rae/papers/2018/stitch/stitch.pdf…; #HaskellPDF) do it if we have (|-) = Exp Var EZ :: a:ctx |- a Abs (Var EZ) :: ctx |- (a -> a)github.comglambda/Exp.hs at master · goldfirere/glambdaThe home of the Glamorous Glambda interpreter. Contribute to goldfirere/glambda development by creating an account on GitHub.1