Author Archives: Christopher Lane Hinson

About Christopher Lane Hinson

A hairy haskell hacker with interests in games, computer science, and social justice.

The One Function per Typeclass Rule

After about five years programming in Haskell, I think we need a rule:  Only put one function in a typeclass. Why?  Because inevitably someone comes along with a data type for which one or the other function of a typeclass … Continue reading

Posted in Haskell | 5 Comments

But does it crawl?

Roguestar is officially a dungeon crawl now, as it actually has dungeons: For the moment I’m ok with the empty black pits, but I want to do something with the skylights.  Maybe slant them at an angle?  I’ll probably also … Continue reading

Posted in Roguestar | Leave a comment

Memoized Dataflow Streams

In reactive programming we can choose between two models: “pull,” in which we run a computation each time output is required, and “push,” in which we run the computation each time input arrives. Which model we use depends on whether … Continue reading

Posted in Haskell | 1 Comment

ANN: Roguestar-0.4.0.1

Roguestar is a science fiction roguelike game written using Haskell and OpenGL.  It is in the early stages of development.  At this time, it is not a winnable game. $ cabal install roguestar-engine $ cabal install roguestar-gl $ ~/.cabal/bin/roguestar – … Continue reading

Posted in Roguestar | Leave a comment

A Brutal Introduction to Arrows

Imagine being killed by a bow and arrow. That would suck, an arrow killed you? They would never solve the crime. "Look at that dead guy. Let’s go that way." — Mitch Hedberg I seem to be one of the … Continue reading

Posted in Haskell | 2 Comments

Composable Blocking Transactions

Background: Software Transactional Memory (STM) is a foundation for atomic composable non-blocking transactions. An STM transaction consists of a set of variables and a monadic sequence of read/write operations on those variables. As the transaction progresses, a transaction table is … Continue reading

Posted in Haskell | Leave a comment

Paintable User Interfaces

It seems like it should be possible to have some kind of GUI library in which user interface elements can be painted onto the screen frame-by-frame, instead of the common practice of assembling an object-oriented hierarchy of widgets. I’m thinking … Continue reading

Posted in Uncategorized | 4 Comments