got a 20% performance boost from a partial-evaluation monad