0:00 / 0:00
Richard Eisenberg on Dependent Types
NYC Haskell User's Group
1.7K subscribers • 23 videos on Hallway
- Recommended by 1 person: 1 in engineering communities.
- Presented by Richard Eisenberg, Haskell contributor
Advanced. Deep dive for people who know the field.
4.9K views8 years ago1 recommendation
Programming languagesComputer scienceHaskellCompilers and interpretersLanguage design and type systems
Richard Eisenberg presents Stitch, a typed lambda-calculus interpreter written in Haskell using type-indexed abstract syntax and advanced types.
Stitch: The Sound Type-Indexed Type Checker Richard Eisenberg will present his work on Stitch, a typed lambda-calculus interpreter, written in Haskell using type-indexed abstract syntax. The datatype that represents expressions in the interpreter is indexed by its Stitch type, meaning that only well-typed expressions can be represented. However, Stitch is not just a toy example: the interpreter is an application with a REPL, and thus contains a parser and type-checker. It also can optimize expressions via a common-subexpression-elimination pass and presents a flexible, expressive user interface that can be used to teach the lambda-calculus. The implementation of Stitch taps into a wide range of Haskell features for working with fancy types, including generalized algebraic datatypes (GADTs), existentials, higher-rank types, singletons, and the new type-indexed TypeRep feature. This talk will include a brief introduction to these features and use Stitch as a case study to show that Haskell is ready to support fancy types used in anger, even though it still lacks support for full dependent types. Richard is an Assistant Professor of Computer Science at Bryn Mawr College, an undergraduate-focused women's college in suburban Philadelphia. He is a 2016 graduate from the PhD program at the University of Pennsylvania, where he worked with Stephanie Weirich. His dissertation was on a design for the surface syntax, internal language, and type inference algorithm to support dependent types in GHC; he is a core contributor to GHC and is currently funded by an NSF grant to implement dependent types in GHC. meetup.com/NY-Haskell/events/249575016/Why it's here
1 person recommends thisMoments people linked to
u/Iceland_jackin r/haskell • Mentions
On “Richard Eisenberg speaks on Dependent Types”
* *[16:04]* I always find this syntax in Haskell confusing, that we have terms right up next to types when we declare the datatypes but that's what we do.
I've taken to calling it “legacy Haskell-98 syntax” following the linear Haskell paper (arXiv site) (pdf) :)
* *[26:50]* Is it eager? I wish I could say it were. It's not eager, it's not lazy. Haskell currently has a terrible story about evaluation semantics in types.
* *[37:36]* More people know `Vec` than `local`, this is interesting.
data Vec :: Type -> Nat -> Type where
VNil :: Vec a Zero
(:>) :: a -> Vec a n -> Vec a (Succ n)
* *[42:20]* .. and so because of that I need to make a CUSK (“compl…
u/LeanderKuin r/haskell • Mentions
On “Richard Eisenberg speaks on Dependent Types”
43:52 Why don't we have the Exists-Operator in Haskell? One of the long-standing questions for me, since forall is so prevalent. Just because it's less useful? Or is there a deeper reason?
u/Faucelmein r/haskell • Mentions
On “Reminder: Stephanie Weirich will speak tomorrow (Monday) in The Chalmers Online Functional Programming Seminar Series”
If I understood correctly, this talk seems related to the glambda and stitch "intrinsic interpreters" for simply-typed lambda calculus, but goes beyond them to also support System F.