# Prelude

interface Enum
  pred : Enum a => a -> a
  succ : Enum a => a -> a
  toNat : Enum a => a -> Nat
  fromNat : Enum a => Nat -> a
  enumFrom : Enum a => a -> Stream a
  enumFromThen : Enum a => a -> a -> Stream a
  enumFromTo : Enum a => a -> a -> List a
  enumFromThenTo : Enum a => a -> a -> a -> List a
cast_error : Err -> Maybe (List ErrorReportPart)
countFrom : Num n => n -> n -> Stream n
curry : ((a, b) -> c) -> a -> b -> c
decAsBool : Dec p -> Bool
default#enumFrom : Enum a => a -> Stream a
default#enumFromThen : Enum a => a -> a -> Stream a
default#enumFromThenTo : Enum a => a -> a -> a -> List a
default#enumFromTo : Enum a => a -> a -> List a
default#succ : Enum a => a -> a
eqPtr : Ptr -> Ptr -> IO Bool

  Pointer equality

natEnumFromThen : Nat -> Nat -> Stream Nat
natEnumFromThenTo : Nat -> Nat -> Nat -> List Nat
natEnumFromThenTo' : Nat -> Nat -> Nat -> List Nat
natEnumFromTo : Nat -> Nat -> List Nat
natRange : Nat -> List Nat
num_error : Err -> Maybe (List ErrorReportPart)
pow : Num a => a -> Nat -> a
shiftL : Int -> Int -> Int
shiftR : Int -> Int -> Int
uncurry : (a -> b -> c) -> (a, b) -> c
while : (test : IO' l Bool) -> (body : IO' l ()) -> IO' l ()

  Loop while some test is true

  test

    the condition of the loop

  body

    the loop body