Control.Scanl
data Scan a b
data ScanM m a b
scan
scanM
scanr
prescan
postscan
purely
purely_
impurely
impurely_
generalize
simplify
hoists
arrM
premap
premapM