u/imalsogregin r/haskell • Recommends
On “What are the best Haskell codebases to learn from?”
42K subscribers • 85 videos on Hallway • Conference channel
Intermediate. Assumes working knowledge.
20K views10 years ago1 recommendation
Programming languagesHaskellLanguage design and type systems
Richard Eisenberg teaches how to use Generalized Algebraic Datatypes in Haskell to encode invariants and enforce them at compile time.
A burgeoning Haskeller soon discovers that proper use of descriptive types helps to capture real-world ideas, catches errors, aids in refactoring, speeds development, and indeed makes programming more fun. But, once that Haskeller has drunk the well-typed Kool-Aid, where to go from there? The answer: even more types! A Generalized Algebraic Datatype (GADT), at its core, allows a compiler to make different assumptions about types within different branches of a pattern match. Leveraging this power allows a programmer to encode detailed invariants in a datatype or algorithm and have these invariants checked at compile time. Clever use of GADTs also lets you remove certain uses of unsafeCoerce, as long as these can be proved safe. This workshop will be a hands-on, interactive tutorial on using Haskell GADTs in a practical setting. Help us caption & translate this video! amara.org/v/HblS/What people say. Highly recommended for learning GADTs, particularly alongside the glambda educational codebase for a deep type-system workout.
u/imalsogregin r/haskell • Recommends
On “What are the best Haskell codebases to learn from?”
u/Faucelmein r/haskell • Mentions
On “Understanding dynamic-typing facilities in haskell”
u/Faucelmein r/haskell • Mentions
On “Reminder: Stephanie Weirich will speak tomorrow (Monday) in The Chalmers Online Functional Programming Seminar Series”
u/MorrowM_in r/haskell • Mentions
On “Tying Shoes with GADTs”