    {-# LANGUAGE DeriveGeneric #-}
    module GHC.ForeignSrcLang.Type
      ( ForeignSrcLang(..)
      ) where

    import Prelude -- See note [Why do we import Prelude here?]
    import GHC.Generics (Generic)

    -- | Foreign formats supported by GHC via TH
    data ForeignSrcLang
      = LangC      -- ^ C
      | LangCxx    -- ^ C++
      | LangObjc   -- ^ Objective C
      | LangObjcxx -- ^ Objective C++
      | LangAsm    -- ^ Assembly language (.s)
      | RawObject  -- ^ Object (.o)
      deriving (ForeignSrcLang -> ForeignSrcLang -> Bool
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    /= :: ForeignSrcLang -> ForeignSrcLang -> Bool
    $c/= :: ForeignSrcLang -> ForeignSrcLang -> Bool
    == :: ForeignSrcLang -> ForeignSrcLang -> Bool
    $c== :: ForeignSrcLang -> ForeignSrcLang -> Bool
    Eq, Int -> ForeignSrcLang -> ShowS
    [ForeignSrcLang] -> ShowS
    ForeignSrcLang -> String
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    showList :: [ForeignSrcLang] -> ShowS
    $cshowList :: [ForeignSrcLang] -> ShowS
    show :: ForeignSrcLang -> String
    $cshow :: ForeignSrcLang -> String
    showsPrec :: Int -> ForeignSrcLang -> ShowS
    $cshowsPrec :: Int -> ForeignSrcLang -> ShowS
    Show, forall x. Rep ForeignSrcLang x -> ForeignSrcLang
    forall x. ForeignSrcLang -> Rep ForeignSrcLang x
    forall a.
    (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
    $cto :: forall x. Rep ForeignSrcLang x -> ForeignSrcLang
    $cfrom :: forall x. ForeignSrcLang -> Rep ForeignSrcLang x
    Generic)