Author Archives: Christopher Lane Hinson

About Christopher Lane Hinson

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

New Roguestar Screenshot: Gateway

When you are done on a planet, step through a gateway to move to the next one.

Posted in Roguestar | Leave a comment


I’ve been playing around with an Arrow concept, which to my knowledge is original. I’ve decided to call this a FactoryArrow: newtype FactoryArrow m n a b = FactoryArrow { runFactory :: m (Kleisli n a b) } Where m … Continue reading

Posted in Haskell | 2 Comments

Vec is Good

Last night I checked out Scott E. Dillard’s Vec library. It’s a good, fast, pure implementation of the basic matrix operations applicable to 3D graphics. Switching to Vec has shaved off quite a bit of time from one of my … Continue reading

Posted in Haskell | 1 Comment

ANN: priority-sync

Provides cooperative task prioritization. The priority-sync package on $ cabal install priority-sync $ git clone Feedback will be greatly appreciated. This package is a spin-off from my work on roguestar, where I need to do significant background processing … Continue reading

Posted in Uncategorized | Leave a comment

Trends in Profiling Haskell

I spent some time yesterday profiling roguestar. I do this every few months just to see where things stand, and there are always two culprits at the top of, every single time: * typeclass dictionary lookups in inner loops … Continue reading

Posted in Haskell | 5 Comments

Twilight Hero

Here we see our hero fighting a recreant with a kinetic sabre. The material spheres front and left can be used to repair yourself, while a phase rifle is to the right. In unskilled hands, such powerful weapons can more … Continue reading

Posted in Roguestar | Leave a comment


As I’ve found myself repeatedly writing a bit of code that looked vaguely like this: get :: SomeArrow String (Maybe Thing) foo :: [Thing] -> FooThing . . . getAToZ :: SomeArrow () (Maybe FooThing) getAToZ = proc () -> … Continue reading

Posted in Haskell | 10 Comments