interface Data.Maybe where {

{-# NEED #-}
instance Prelude.Functor NHC.Internal.IO;

{-# NEED #-}
instance Prelude.Monad NHC.Internal.IO;

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

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

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

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

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

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

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

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

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

{-# NEED #-}
instance (Prelude.Show a) => Prelude.Show (NHC.Internal.IO a);
interface Ratio
{-# NEED Ratio #-}
data Ratio a;
interface NHC.Internal
{-# NEED IO #-}
newtype {-#  #-} IO a;
interface NHC.DErrNo
{-# NEED ErrNo #-}
data ErrNo;
interface IO
{-# NEED Handle #-}
newtype {-#  #-} Handle;
interface NHC.Internal
{-# NEED World #-}
data World;
interface ! Prelude
{-# NEED maybe #-}
maybe{-# 3 #-}::(a -> ((b -> a) -> ((Prelude.Maybe b) -> a)));
interface ! Maybe
{-# NEED fromMaybe #-}
fromMaybe{-# 2 #-}::(a -> ((Prelude.Maybe a) -> a));

{-# NEED listToMaybe #-}
listToMaybe{-# 1 #-}::([a] -> (Prelude.Maybe a));

{-# NEED mapMaybe #-}
mapMaybe{-# 1 #-}::((a -> (Prelude.Maybe b)) -> ([a] -> [b]));

{-# NEED isNothing #-}
isNothing{-# 1 #-}::((Prelude.Maybe a) -> Prelude.Bool);

{-# NEED catMaybes #-}
catMaybes{-# 1 #-}::([(Prelude.Maybe a)] -> [a]);

{-# NEED maybeToList #-}
maybeToList{-# 1 #-}::((Prelude.Maybe a) -> [a]);

{-# NEED fromJust #-}
fromJust{-# 1 #-}::((Prelude.Maybe a) -> a);

{-# NEED isJust #-}
isJust{-# 1 #-}::((Prelude.Maybe a) -> Prelude.Bool);
interface ! Prelude
{-# NEED {Maybe Nothing Just} #-}
data Maybe a
  = Nothing 
  | Just a;
}
