In param_rules, you use spaces around your hash rockets, but here you don't. Any reason? 

Personally, I prefer spaces around them since it makes it easier to read (and also a space after the lambda keyword).