I've added a transformations module that wraps up the affine / matrix transformations.
This makes Wumpus feel somewhat more functional, for instance this function draws an asterisk dot:
asterisk (P2 x y) = zipWith fn (replicate 5 ls1) [0..4]
where
ls1 = vline origin 2
fn ln theta = translate x y $ rotate ((2*theta*pi)/5) ln
Of course, there is still some golfing to be done.