interface System where {

{-# NEED #-}
instance (Prelude.Integral a) => Prelude.RealFrac (Ratio.Ratio a);

{-# NEED #-}
instance Prelude.NmCoerce (FFIBuiltin.StablePtr a);

{-# NEED #-}
instance Prelude.NmCoerce FFIBuiltin.ForeignObj;

{-# NEED #-}
instance Prelude.NmCoerce FFIBuiltin.Int8;

{-# NEED #-}
instance Prelude.NmCoerce FFIBuiltin.Int16;

{-# NEED #-}
instance Prelude.NmCoerce FFIBuiltin.Int32;

{-# NEED #-}
instance Prelude.NmCoerce FFIBuiltin.Int64;

{-# NEED #-}
instance Prelude.NmCoerce FFIBuiltin.Word8;

{-# NEED #-}
instance Prelude.NmCoerce FFIBuiltin.Word16;

{-# NEED #-}
instance Prelude.NmCoerce FFIBuiltin.Word32;

{-# NEED #-}
instance Prelude.NmCoerce FFIBuiltin.Word64;

{-# NEED #-}
instance Prelude.NmCoerce PackedString.PackedString;

{-# NEED #-}
instance Prelude.NmCoerce FFIBuiltin.Addr;

{-# NEED #-}
instance (Prelude.Integral a) => Prelude.Fractional (Ratio.Ratio a);

{-# NEED #-}
instance (Prelude.Integral a) => Prelude.Real (Ratio.Ratio a);

{-# NEED #-}
instance (Prelude.Integral a) => Prelude.Num (Ratio.Ratio a);

{-# NEED #-}
instance Prelude.Enum FFIBuiltin.Addr;

{-# NEED #-}
instance (Prelude.Integral a) => Prelude.Enum (Ratio.Ratio a);

{-# NEED #-}
instance Prelude.Ord PackedString.PackedString;

{-# NEED #-}
instance Prelude.Ord FFIBuiltin.Addr;

{-# NEED #-}
instance (Prelude.Integral a) => Prelude.Ord (Ratio.Ratio a);

{-# NEED #-}
instance Prelude.Ord ExitCode;

{-# NEED #-}
instance Prelude.Eq PackedString.PackedString;

{-# NEED #-}
instance Prelude.Eq FFIBuiltin.Addr;

{-# NEED #-}
instance (Prelude.Integral a) => Prelude.Eq (Ratio.Ratio a);

{-# NEED #-}
instance Prelude.Eq ExitCode;

{-# NEED #-}
instance Prelude.Show PackedString.PackedString;

{-# NEED #-}
instance Prelude.Show FFIBuiltin.Addr;

{-# NEED #-}
instance (Prelude.Integral a) => Prelude.Show (Ratio.Ratio a);

{-# NEED #-}
instance Prelude.Show ExitCode;

{-# NEED #-}
instance Prelude.Read PackedString.PackedString;

{-# NEED #-}
instance (Prelude.Read a,Prelude.Integral a) => Prelude.Read (Ratio.Ratio a);

{-# NEED #-}
instance Prelude.Read ExitCode;
interface FFIBuiltin
{-# NEED StablePtr #-}
data StablePtr a;

{-# NEED ForeignObj #-}
data ForeignObj;

{-# NEED Int8 #-}
data Int8;

{-# NEED Int16 #-}
data Int16;

{-# NEED Int32 #-}
data Int32;

{-# NEED Int64 #-}
data Int64;

{-# NEED Word8 #-}
data Word8;

{-# NEED Word16 #-}
data Word16;

{-# NEED Word32 #-}
data Word32;

{-# NEED Word64 #-}
data Word64;

{-# NEED Addr #-}
data Addr;
interface PackedString
{-# NEED PackedString #-}
data PackedString;
interface Ratio
{-# NEED Ratio #-}
data (Prelude.Integral a) => Ratio a;
interface ! System
{-# NEED getEnv #-}
getEnv{-# 2 #-}::(Prelude.SR -> (Prelude.Trace -> (Prelude.R (Prelude.Trace -> ((Prelude.R Prelude.String) -> (Prelude.R (Prelude.IO Prelude.String)))))));

{-# NEED getArgs #-}
getArgs{-# 2 #-}::(Prelude.SR -> (Prelude.Trace -> (Prelude.R (Prelude.IO [Prelude.String]))));

{-# NEED system #-}
system{-# 2 #-}::(Prelude.SR -> (Prelude.Trace -> (Prelude.R (Prelude.Trace -> ((Prelude.R Prelude.String) -> (Prelude.R (Prelude.IO ExitCode)))))));

{-# NEED exitWith #-}
exitWith{-# 2 #-}::(Prelude.SR -> (Prelude.Trace -> (Prelude.R (Prelude.Trace -> ((Prelude.R ExitCode) -> (Prelude.R (Prelude.IO a)))))));

{-# NEED exitFailure #-}
exitFailure{-# 2 #-}::(Prelude.SR -> (Prelude.Trace -> (Prelude.R (Prelude.IO a))));

{-# NEED getProgName #-}
getProgName{-# 2 #-}::(Prelude.SR -> (Prelude.Trace -> (Prelude.R (Prelude.IO Prelude.String))));

{-# NEED {ExitCode ExitSuccess ExitFailure} #-}
data ExitCode
  = ExitSuccess 
  | ExitFailure (Prelude.R Prelude.Int);
}
