# Prelude.Interfaces

interface Abs

  Numbers for which the absolute value is defined should implement `Abs`.

  abs : Abs ty => ty -> ty

    Absolute value

interface Eq

  The Eq interface defines inequality and equality.

  (==) : Eq ty => ty -> ty -> Bool
    Fixity
      Non-associative, precedence 6
  (/=) : Eq ty => ty -> ty -> Bool
    Fixity
      Non-associative, precedence 6
interface Fractional
  (/) : Fractional ty => ty -> ty -> ty
    Fixity
      Left associative, precedence 9
  recip : Fractional ty => ty -> ty
interface Integral
  div : Integral ty => ty -> ty -> ty
    Fixity
      Left associative, precedence 9
  mod : Integral ty => ty -> ty -> ty
    Fixity
      Left associative, precedence 9
interface MaxBound
  maxBound : MaxBound b => b

    The upper bound for the type

interface MinBound
  minBound : MinBound b => b

    The lower bound for the type

interface Neg

  The `Neg` interface defines operations on numbers which can be negative.

  negate : Neg ty => ty -> ty

    The underlying of unary minus. `-5` desugars to `negate (fromInteger 5)`.

  (-) : Neg ty => ty -> ty -> ty
    Fixity
      Left associative, precedence 8
interface Num

  The Num interface defines basic numerical arithmetic.

  (+) : Num ty => ty -> ty -> ty
    Fixity
      Left associative, precedence 8
  (*) : Num ty => ty -> ty -> ty
    Fixity
      Left associative, precedence 9
  fromInteger : Num ty => Integer -> ty

    Conversion from Integer.

interface Ord

  The Ord interface defines comparison operations on ordered data types.

  compare : Ord ty => ty -> ty -> Ordering
  (<) : Ord ty => ty -> ty -> Bool
    Fixity
      Non-associative, precedence 6
  (>) : Ord ty => ty -> ty -> Bool
    Fixity
      Non-associative, precedence 6
  (<=) : Ord ty => ty -> ty -> Bool
    Fixity
      Non-associative, precedence 6
  (>=) : Ord ty => ty -> ty -> Bool
    Fixity
      Non-associative, precedence 6
  max : Ord ty => ty -> ty -> ty
  min : Ord ty => ty -> ty -> ty
data Ordering : Type
  LT : Ordering
  EQ : Ordering
  GT : Ordering
boolOp : (a -> a -> Int) -> a -> a -> Bool
default#/= : Eq ty => ty -> ty -> Bool
default#< : Ord ty => ty -> ty -> Bool
default#<= : Ord ty => ty -> ty -> Bool
default#== : Eq ty => ty -> ty -> Bool
default#> : Ord ty => ty -> ty -> Bool
default#>= : Ord ty => ty -> ty -> Bool
default#max : Ord ty => ty -> ty -> ty
default#min : Ord ty => ty -> ty -> ty
default#recip : Fractional ty => ty -> ty
divB16 : Bits16 -> Bits16 -> Bits16
divB32 : Bits32 -> Bits32 -> Bits32
divB64 : Bits64 -> Bits64 -> Bits64
divB8 : Bits8 -> Bits8 -> Bits8
divBigInt : Integer -> Integer -> Integer
divInt : Int -> Int -> Int
intToBool : Int -> Bool
modB16 : Bits16 -> Bits16 -> Bits16
modB32 : Bits32 -> Bits32 -> Bits32
modB64 : Bits64 -> Bits64 -> Bits64
modB8 : Bits8 -> Bits8 -> Bits8
modBigInt : Integer -> Integer -> Integer
modInt : Int -> Int -> Int
thenCompare : Ordering -> Lazy Ordering -> Ordering

  Compose two comparisons into the lexicographic product