| |||||||||||||||
| |||||||||||||||
Description | |||||||||||||||
Optimisation fuel is used to control the amount of work the optimiser does. Every optimisation step consumes a certain amount of fuel and stops when it runs out of fuel. This can be used e.g. to debug optimiser bugs: Run the optimiser with varying amount of fuel to find out the exact number of steps where a bug is introduced in the output. | |||||||||||||||
Documentation | |||||||||||||||
data OptimizationFuel | |||||||||||||||
| |||||||||||||||
canRewriteWithFuel :: OptimizationFuel -> Bool | |||||||||||||||
maybeRewriteWithFuel :: OptimizationFuel -> Maybe a -> Maybe a | |||||||||||||||
oneLessFuel :: OptimizationFuel -> OptimizationFuel | |||||||||||||||
data OptFuelState | |||||||||||||||
initOptFuelState :: IO OptFuelState | |||||||||||||||
tankFilledTo :: Int -> OptimizationFuel | |||||||||||||||
diffFuel :: OptimizationFuel -> OptimizationFuel -> Int | |||||||||||||||
type FuelConsumer a = OptimizationFuel -> (a, OptimizationFuel) | |||||||||||||||
class Monad m => FuelUsingMonad m where | |||||||||||||||
| |||||||||||||||
data FuelState | |||||||||||||||
runFuelIO :: OptFuelState -> FuelMonad a -> IO a | |||||||||||||||
fuelConsumingPass :: String -> FuelConsumer a -> FuelMonad a | |||||||||||||||
data FuelMonad a | |||||||||||||||
| |||||||||||||||
liftUniq :: UniqSM x -> FuelMonad x | |||||||||||||||
lGraphOfGraph :: Graph m l -> FuelMonad (LGraph m l) | |||||||||||||||
Produced by Haddock version 2.7.2 |