module LinearScan.Datatypes where import qualified Prelude import qualified Data.IntMap import qualified Data.List import qualified Data.Ord import qualified Data.Functor.Identity import qualified LinearScan.Utils list_rect :: a2 -> (a1 -> ([] a1) -> a2 -> a2) -> ([] a1) -> a2 list_rect f f0 l = case l of { [] -> f; (:) y l0 -> f0 y l0 (list_rect f f0 l0)}