"Dependent Types in Haskell" by Stephanie Weirich

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 พ.ย. 2024

ความคิดเห็น • 13

  • @marksaving756
    @marksaving756 6 ปีที่แล้ว +5

    Excellent talk. I learned Haskell after learning Martin-Lof type theory and look forward to writing Π in my programs.

  • @alexcoventry7580
    @alexcoventry7580 7 ปีที่แล้ว +10

    Thanks, this was a terrific introduction, and the concrete example clarified things a great deal.

  • @johnmiller8884
    @johnmiller8884 7 ปีที่แล้ว +29

    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
      @xtty7644 7 ปีที่แล้ว +7

      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
    @FourTetTrack ปีที่แล้ว +1

    I loved the talk, thanks a lot Dr Weirich!!!

  • @lordquaggan
    @lordquaggan ปีที่แล้ว +2

    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.

  • @centril
    @centril 6 ปีที่แล้ว +4

    A truly awesome and detailed talk!

  • @shutterrecoil
    @shutterrecoil ปีที่แล้ว

    the most representative DT example is at 26:00

  • @tricky778
    @tricky778 6 ปีที่แล้ว +1

    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?

  • @nilp0inter2
    @nilp0inter2 5 ปีที่แล้ว

    Awesome talk!

  • @mskiptr
    @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)`?