{-# LANGUAGE CPP #-} module HERMIT.Optimization.SYB.Prelude ( -- re-export all the imports below, so inlining info is available -- during compilation of the target program module Data.Function , module GHC.Base , module GHC.Fingerprint , module GHC.Fingerprint.Type , module GHC.Prim , module GHC.Word ) where import Data.Function (fix) import GHC.Base((++)) import GHC.Fingerprint (fingerprintFingerprints, Fingerprint(..)) import GHC.Fingerprint.Type import GHC.Prim -- eqWord# import GHC.Word -- After 7.6, GHC supports rules that never fire automatically. #if __GLASGOW_HASKELL__ > 706 {-# RULES "[]++" [~] forall x. [] ++ x = x #-} {-# RULES "append" [~] (++) = append #-} #else {-# RULES "[]++" forall x. [] ++ x = x #-} {-# RULES "append" (++) = append #-} #endif append :: [a] -> [a] -> [a] append [] xs = xs append (y:ys) xs = y : append ys xs