Safe, programmable, speculative evaluation for Haskell