module LinearScan.Prelude0 where


import Debug.Trace (trace, traceShow)
import qualified Prelude
import qualified Data.IntMap
import qualified Data.IntSet
import qualified Data.List
import qualified Data.Ord
import qualified Data.Functor.Identity
import qualified LinearScan.Utils


apply :: (a1 -> a2) -> a1 -> a2
apply f x =
  f x

first :: (a1 -> a2) -> ((,) a1 a3) -> (,) a2 a3
first f x =
  case x of {
   (,) a z -> (,) (f a) z}

curry :: (a1 -> a2 -> a3) -> ((,) a1 a2) -> a3
curry f x =
  case x of {
   (,) a b -> f a b}

option_map :: (a1 -> a2) -> (Prelude.Maybe a1) -> Prelude.Maybe a2
option_map f x =
  case x of {
   Prelude.Just x0 -> Prelude.Just (f x0);
   Prelude.Nothing -> Prelude.Nothing}

option_choose :: (Prelude.Maybe a1) -> (Prelude.Maybe a1) -> Prelude.Maybe a1
option_choose x y =
  case x of {
   Prelude.Just a -> x;
   Prelude.Nothing -> y}

lebf :: (a1 -> Prelude.Int) -> a1 -> a1 -> Prelude.Bool
lebf f n m =
  (Prelude.<=) (f n) (f m)

type Coq_oddnum = Prelude.Int

odd1 :: Prelude.Int
odd1 =
  (Prelude.succ) 0