Announcing Potential: x86-64 assembler as a Haskell EDSL

Over the years there have been many projects which seek to use advanced types to provide better static-guarantees in low level languages. There are many examples of this in the literature; here are just a few: Cyclone, perhaps the most-cited example of using types to protect memory in low-level settings. Habit, a proposed Haskell dialect [...]

Optional class constraints in Haskell

Work on my Haskell EDSL is moving ever onward. Today I want to talk about a trick I found while working on it. (Along the way I’ll make some allusions to the EDSL, but I want to forestall announcing the EDSL for another week or so, in the interest of ensuring it’s fully baked.)

Polymorphic first class labels

(This post uses GHC 6.12.1) The expression “first class labels” refers to the idea that, for record data types, one should be able to pass around the labels just as they would any other type. For instance, if I have a record like data Foo a b = { biz :: a, baz :: b [...]

Some weird interactions between Monomorphism Restriction and Template Haskell

Today I’m going to look at a weird issue I encountered this past weekend while working on a DSL in Haskell. I’ll start with the code. As this example uses Template Haskell, we need to have the source broken up into two files: Testa.hs: {-# LANGUAGE TemplateHaskell #-} module Testa where import Language.Haskell.TH someth = [...]

Follow

Get every new post delivered to your Inbox.