Media Summary: This video is a continuation of last week's ( where I actually get to I describe how Haskell uses kinds to track how runtime values are represented. This video doesn't quite get to talk about In the course of writing I wanted to write a TupleN# operator that takes ...

Rae Levity Polymorphism For Real - Detailed Analysis & Overview

This video is a continuation of last week's ( where I actually get to I describe how Haskell uses kinds to track how runtime values are represented. This video doesn't quite get to talk about In the course of writing I wanted to write a TupleN# operator that takes ... I run through a toy example of how using unboxed types (specifically, unboxed tuples) can make your Haskell code run faster. Haskell is widely known for featuring lazy evaluation, but having this as a first-class component of the language does not come for ... 30 August, 2015 Richard A. Eisenberg, University of Pennsylvania e-mail in the first slide Help us caption & translate this video!

Spurred on by I discuss how GHC currently is pretty arbitrary in when it decides to ... I use a fair dollop of type-level hackery to cook up some pattern synonyms that provide a richly typed, safe interface on top of an ... I look at a case study that arose "in the wild" of how the monomorphism restriction is sometimes necessary to type-check a ... We explore Haskell's layout rule, and how it works in practice. Official description of that layout rule: ... I explain the infrequently-written but often-implied -XMonoLocalBinds extension and how it prevents let-generalization. Authors: Richard A. Eisenberg, Simon Peyton Jones Title:

I build a version of zipWith that can infer its arity. Is this a good idea? I don't know. But it's definitely fun to push the limits. Warning: ... This more introductory video walks through Haskell's kind system, giving a little motivation for why Haskell has kinds at all, and ... I describe the MonoLocalBinds extension to GHC, and describe how it makes type inference more predictable by disabling local ... This video demonstrates a way to access the full type-checker environment from inside a Template Haskell splice. The use here is ... I explain GHC's TypeError facility, which allows your library to customize type errors that users see. This video was inspired by ...

Photo Gallery

@rae: Levity polymorphism (for real)
@rae: Levity polymorphism introduction
@rae: Implementing an arity-polymorphic unboxed tuple operator
@rae: Unboxed types in GHC
Joe Kachmar Presents: Low-Level Programming in Haskell with Levity Polymorphism
11 Levity Polymorphism In Dependent Haskell [fixed audio]
@rae: GHC defaults type representations at pretty arbitrary places
@rae: Pattern synonyms can improve performance while retaining safety
@rae: Why we sometimes need the monomorphism restriction
@rae: How whitespace works in Haskell
@rae: Let-generalization is confusing
Richard A. Eisenberg - Levity Polymorphism
View Detailed Profile
@rae: Levity polymorphism (for real)

@rae: Levity polymorphism (for real)

This video is a continuation of last week's (https://youtu.be/Mb_B-j8ePfc) where I actually get to

@rae: Levity polymorphism introduction

@rae: Levity polymorphism introduction

I describe how Haskell uses kinds to track how runtime values are represented. This video doesn't quite get to talk about

@rae: Implementing an arity-polymorphic unboxed tuple operator

@rae: Implementing an arity-polymorphic unboxed tuple operator

In the course of writing https://github.com/ghc-proposals/ghc-proposals/pull/475, I wanted to write a TupleN# operator that takes ...

@rae: Unboxed types in GHC

@rae: Unboxed types in GHC

I run through a toy example of how using unboxed types (specifically, unboxed tuples) can make your Haskell code run faster.

Joe Kachmar Presents: Low-Level Programming in Haskell with Levity Polymorphism

Joe Kachmar Presents: Low-Level Programming in Haskell with Levity Polymorphism

Haskell is widely known for featuring lazy evaluation, but having this as a first-class component of the language does not come for ...

11 Levity Polymorphism In Dependent Haskell [fixed audio]

11 Levity Polymorphism In Dependent Haskell [fixed audio]

30 August, 2015 Richard A. Eisenberg, University of Pennsylvania e-mail in the first slide Help us caption & translate this video!

@rae: GHC defaults type representations at pretty arbitrary places

@rae: GHC defaults type representations at pretty arbitrary places

Spurred on by https://gitlab.haskell.org/ghc/ghc/-/issues/20686, I discuss how GHC currently is pretty arbitrary in when it decides to ...

@rae: Pattern synonyms can improve performance while retaining safety

@rae: Pattern synonyms can improve performance while retaining safety

I use a fair dollop of type-level hackery to cook up some pattern synonyms that provide a richly typed, safe interface on top of an ...

@rae: Why we sometimes need the monomorphism restriction

@rae: Why we sometimes need the monomorphism restriction

I look at a case study that arose "in the wild" of how the monomorphism restriction is sometimes necessary to type-check a ...

@rae: How whitespace works in Haskell

@rae: How whitespace works in Haskell

We explore Haskell's layout rule, and how it works in practice. Official description of that layout rule: ...

@rae: Let-generalization is confusing

@rae: Let-generalization is confusing

I explain the infrequently-written but often-implied -XMonoLocalBinds extension and how it prevents let-generalization.

Richard A. Eisenberg - Levity Polymorphism

Richard A. Eisenberg - Levity Polymorphism

Authors: Richard A. Eisenberg, Simon Peyton Jones Title:

@rae: Inferring the arity of zipWith, with lots of type-level hackery

@rae: Inferring the arity of zipWith, with lots of type-level hackery

I build a version of zipWith that can infer its arity. Is this a good idea? I don't know. But it's definitely fun to push the limits. Warning: ...

@rae: An introduction to Haskell's kinds

@rae: An introduction to Haskell's kinds

This more introductory video walks through Haskell's kind system, giving a little motivation for why Haskell has kinds at all, and ...

@rae: Let should not be generalized: the MonoLocalBinds extension to GHC

@rae: Let should not be generalized: the MonoLocalBinds extension to GHC

I describe the MonoLocalBinds extension to GHC, and describe how it makes type inference more predictable by disabling local ...

The Only Time You Should Use Polymorphism

The Only Time You Should Use Polymorphism

The only time you should use subtype

4.7: Introduction to Polymorphism - The Nature of Code

4.7: Introduction to Polymorphism - The Nature of Code

This video looks at the topic of

@rae: How to sneak an access to the type-checker from Template Haskell

@rae: How to sneak an access to the type-checker from Template Haskell

This video demonstrates a way to access the full type-checker environment from inside a Template Haskell splice. The use here is ...

@rae: Custom type errors using TypeError

@rae: Custom type errors using TypeError

I explain GHC's TypeError facility, which allows your library to customize type errors that users see. This video was inspired by ...