Tag Archives: type-level

Back from Baltimore

I’m finally back in Philly after attending ICFP, the Haskell Symposium, and the Haskell Implementors’ Workshop in Baltimore. I enjoyed meeting every person I met, so if I met you please feel free to instantiate the universal quantifier. Here’s a … Continue reading

Posted in haskell, links, writing | Tagged , , , , , , , | Leave a comment

On a Problem of sigfpe

> {-# LANGUAGE TypeFamilies, EmptyDataDecls, TypeOperators, GADTs #-} At the end of his most recent blog post, Divided Differences and the Tomography of Types, Dan Piponi left his readers with a challenge: In preparation for the next installment, here’s a … Continue reading

Posted in haskell | Tagged , , , , , | 2 Comments

Typed type-level programming in Haskell, part IV: collapsing types and kinds

In Part III, we saw how the current state of the art in Haskell type-level programming leaves some things to be desired: it requires duplicating both data declarations and code, and even worse, it’s untyped. What to do? Currently, GHC’s … Continue reading

Posted in haskell, projects | Tagged , , , , | 28 Comments

Typed type-level programming in Haskell, part III: I can haz typs plz?

In Part II, I showed how type families can be used to do type-level programming in a functional style. For example, here is addition of natural numbers again: data Z data S n type family Plus m n :: * … Continue reading

Posted in haskell | Tagged , , | 15 Comments

Typed type-level programming in Haskell, part II: type families

In my previous post, we saw how multi-parameter type classes with functional dependencies in Haskell allow us to do type-level programming in a logic programming style. (If you’re not clear on why this corresponds to a logic programming style, see … Continue reading

Posted in haskell | Tagged , , , | 5 Comments

Typed type-level programming in Haskell, part I: functional dependencies

The other project I’m working on at MSR this summer is a bit more ambitious: our headline goal is to extend GHC to enable typed, functional, type-level programming. What’s that, you ask? Well, first, let me tell you a little … Continue reading

Posted in haskell | Tagged , , , | 12 Comments