- nest :: Int -> (a -> a) -> a -> a
- powerAssociative :: (a -> a -> a) -> a -> a -> Integer -> a
- compose2 :: (b -> b -> c) -> (a -> b) -> a -> a -> c

# Documentation

nest :: Int -> (a -> a) -> a -> aSource

Compositional power of a function,
i.e. apply the function `n`

times to a value.
It is rather the same as `iter`

in Simon Thompson: "The Craft of Functional Programming", page 172

powerAssociative :: (a -> a -> a) -> a -> a -> Integer -> aSource

`powerAssociative`

is an auxiliary function that,
for an associative operation `op`

,
computes the same value as

powerAssociative op a0 a n = foldr op a0 (genericReplicate n a)

but applies op O(log n) times and works for large n.