want to push as much of the logic into the type system as possible.  Naming conflicts abound at the moment, and I'm going to end up repeating lots of work.  I'll commit this so that I Can delete it when my brain wakes up
want to push as much of the logic into the type system as possible.  Naming conflicts abound at the moment, and I'm going to end up repeating lots of work.  I'll commit this so that I Can delete it when my brain wakes up

fffej/haskellprojects,fffej/haskellprojects