Safe Haskell | None |
---|
- data ArityType
- etaExpandAp :: (NameMonad Id m, MonadStats m) => DataTable -> TVr -> [E] -> m (Maybe E)
- annotateArity :: E -> Info -> Info
- deleteArity :: Info -> Info
- etaExpandDef :: (NameMonad Id m, MonadStats m) => DataTable -> Int -> TVr -> E -> m (Maybe (TVr, E))
- etaExpandDef' :: (NameMonad Id m, MonadStats m) => DataTable -> Int -> TVr -> E -> m (TVr' E, E)
- etaExpandProgram :: MonadStats m => Program -> m Program
- getArityInfo :: Num t => TVr' e -> (ArityType, t)
- etaAnnotateProgram :: Program -> Program
- etaReduce :: E -> E
Documentation
etaExpandAp :: (NameMonad Id m, MonadStats m) => DataTable -> TVr -> [E] -> m (Maybe E)Source
eta expand a use of a value
annotateArity :: E -> Info -> InfoSource
deleteArity :: Info -> InfoSource
:: (NameMonad Id m, MonadStats m) | |
=> DataTable | |
-> Int | eta expand at least this far, independent of calculated amount |
-> TVr | |
-> E | |
-> m (Maybe (TVr, E)) |
eta expand a definition
etaExpandDef' :: (NameMonad Id m, MonadStats m) => DataTable -> Int -> TVr -> E -> m (TVr' E, E)Source
only reduce if all lambdas can be discarded. otherwise leave them in place
etaExpandProgram :: MonadStats m => Program -> m ProgramSource
getArityInfo :: Num t => TVr' e -> (ArityType, t)Source