{-# language Safe #-}

module Integer
  (
    {- ** Types -} Integer, Natural, Positive,
        Signed (Zero, NonZero, Minus, Plus), Sign (MinusSign, PlusSign),
    {- ** Subtraction -} Subtraction (subtractInteger, subtractSigned), Subtraction' (subtract),
    {- ** Conversion -} IntegerNarrow (narrow), IntegerConvert (convert), IntegerEquiv, yolo, ConvertWithFinite (toInt, fromInt, toWord, fromWord), Finite (..),
    {- ** Lower bound -} BoundedBelow (minBound),
  )
  where

import Integer.BoundedBelow (BoundedBelow (minBound))
import Integer.Conversion (IntegerConvert (convert), IntegerEquiv,
                           IntegerNarrow (narrow), yolo)
import Integer.Finite (ConvertWithFinite (fromInt, fromWord, toInt, toWord),
                       Finite (..))
import Integer.Integer (Integer)
import Integer.Natural (Natural)
import Integer.Positive (Positive)
import Integer.Sign (Sign (MinusSign, PlusSign))
import Integer.Signed (Signed (Minus, NonZero, Plus, Zero))
import Integer.Subtraction (Subtraction (subtractInteger, subtractSigned),
                            Subtraction' (subtract))