Thanks, this was a terrific introduction, and the concrete example clarified things a great deal.
@marksaving756
5 жыл бұрын
Excellent talk. I learned Haskell after learning Martin-Lof type theory and look forward to writing Π in my programs.
@johnmiller8884
6 жыл бұрын
Thank you for the excellent talk. I appreciate the explanation of the use case for dependent types which are so often described win formal computer science terms without ever giving a motivation for their value. Seeing now why dependent types might be useful, is there a good resource that describes the skills and techniques needed to write something like the library in your example?
@xtty7644
6 жыл бұрын
Benjamin Pierce's book Advanced Topics in Types and Programming Languages gives a pretty good explanation on the theoretical background of dependent typing. The book is an extension of the ideas developed in Pierce's previous book, Types and Programming Languages, so you might want to pick that one up first. This should be enough to understand how dependent types work. The rest is just advanced GHC features.
@FourTetTrack
9 ай бұрын
I loved the talk, thanks a lot Dr Weirich!!!
@centril
6 жыл бұрын
A truly awesome and detailed talk!
@lordquaggan
Жыл бұрын
Wow, having the equivalence proofs just be superclass constraints (32:30) is a really neat idea, which I, for some reason, never thought of. I always end up writing functions that match on singletons and return `:~:` when I need to prove properties like that, which is obviously way more painful.
@nilp0inter2
4 жыл бұрын
Awesome talk!
@shutterrecoil
Жыл бұрын
the most representative DT example is at 26:00
@tricky778
6 жыл бұрын
At 32:00, is this the same as saying that Repeat is a monad at the typeclass level? Is there any utility in casting the solution in that light? Does anyone know the paths that line of reasoning has taken people?
@mskiptr
4 жыл бұрын
This talk is awesome! That `~` relation between types is not commutative, right? Like in 34:00, repeating ≥1 times is also ≥0, but we couldn't write it the other way around: `Repeat s` does not ~ `Merge s (Repeat s)`?
Пікірлер: 13