Media Summary: In the course of writing I wanted to write a TupleN# I describe how Haskell uses kinds to track how runtime values are represented. This video doesn't quite get to talk about levity ... We like to think of Haskell as being order-independent: no matter what order you put your declarations in, your program means ...

Rae Implementing An Arity Polymorphic Unboxed Tuple Operator - Detailed Analysis & Overview

In the course of writing I wanted to write a TupleN# I describe how Haskell uses kinds to track how runtime values are represented. This video doesn't quite get to talk about levity ... We like to think of Haskell as being order-independent: no matter what order you put your declarations in, your program means ... Inspired by I walk through an example of how UndecidableInstances might ... Spurred on by I discuss how GHC currently is pretty arbitrary in when it decides to ... I introduce the new ImpredicativeTypes extension and show a way to use it to make indexing into binary trees convenient. Code at ...

I explore the real definition of IO, and how it's just a fairly ordinary state monad. The only unusual aspect is that the state it passes ... I introduce the -XDerivingVia extension and how it can help you avoid writing boilerplate instances, explaining a bit about how it ... I build a version of zipWith that can infer its This video is a (successful!) attempt by me to find and fix a performance regression a recent patch of mine introduced. You will get ... This video demonstrates a way to access the full type-checker environment from inside a Template Haskell splice. The use here is ... In this video, we'll explore Dynamic Casting and RTTI (Run-Time Type Information) — two advanced C++ concepts that help you ...

Google Tech Talks April 18, 2007 ABSTRACT Advanced Topics in Programming Languages Series: Parametric

Photo Gallery

@rae: Implementing an arity-polymorphic unboxed tuple operator
@rae: Unboxed types in GHC
@rae: Levity polymorphism introduction
@rae: Impredicative types and dynamic types -- useful in parsing JSON
@rae: The monomorphism restriction in Haskell causes order dependency. Ack!
@rae: UndecidableInstances can actually cause a runtime loop. Eek!
@rae: GHC defaults type representations at pretty arbitrary places
@rae: A not-so-quick look at Quick Look impredicativity
@rae: IO is just the state monad passing the real world
@rae: Why -XNoPolyKinds should be removed from Haskell
@rae: Avoid boilerplate instances with -XDerivingVia
@rae: Inferring the arity of zipWith, with lots of type-level hackery
View Detailed Profile
@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#

@rae: Unboxed types in GHC

@rae: Unboxed types in GHC

I run through a toy example of how

@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 levity ...

@rae: Impredicative types and dynamic types -- useful in parsing JSON

@rae: Impredicative types and dynamic types -- useful in parsing JSON

I demonstrate how

@rae: The monomorphism restriction in Haskell causes order dependency. Ack!

@rae: The monomorphism restriction in Haskell causes order dependency. Ack!

We like to think of Haskell as being order-independent: no matter what order you put your declarations in, your program means ...

@rae: UndecidableInstances can actually cause a runtime loop. Eek!

@rae: UndecidableInstances can actually cause a runtime loop. Eek!

Inspired by https://gitlab.haskell.org/ghc/ghc/-/issues/20666, I walk through an example of how UndecidableInstances might ...

@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: A not-so-quick look at Quick Look impredicativity

@rae: A not-so-quick look at Quick Look impredicativity

I introduce the new ImpredicativeTypes extension and show a way to use it to make indexing into binary trees convenient. Code at ...

@rae: IO is just the state monad passing the real world

@rae: IO is just the state monad passing the real world

I explore the real definition of IO, and how it's just a fairly ordinary state monad. The only unusual aspect is that the state it passes ...

@rae: Why -XNoPolyKinds should be removed from Haskell

@rae: Why -XNoPolyKinds should be removed from Haskell

I explain why I view the lack of kind

@rae: Avoid boilerplate instances with -XDerivingVia

@rae: Avoid boilerplate instances with -XDerivingVia

I introduce the -XDerivingVia extension and how it can help you avoid writing boilerplate instances, explaining a bit about how it ...

@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

@rae: Live action performance debugging within GHC

@rae: Live action performance debugging within GHC

This video is a (successful!) attempt by me to find and fix a performance regression a recent patch of mine introduced. You will get ...

@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 ...

Dynamic Casting and RTTI in C++ | Type Identification Explained

Dynamic Casting and RTTI in C++ | Type Identification Explained

In this video, we'll explore Dynamic Casting and RTTI (Run-Time Type Information) — two advanced C++ concepts that help you ...

Advanced Topics in Programming Languages Series:...

Advanced Topics in Programming Languages Series:...

Google Tech Talks April 18, 2007 ABSTRACT Advanced Topics in Programming Languages Series: Parametric