-----------------------------------------------------------------------------
{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# OPTIONS_GHC -XNoGenerics #-}
-module GHC.Types (Char(..), Int(..), Float(..), Double(..), IO(..)) where
+module GHC.Types (Bool(..), Char(..), Int(..), Float(..), Double(..), IO(..)) where
import GHC.Prim
-- We need Inl etc behind the scenes for the type definitions
-import GHC.Generics ()
+import GHC.Generics () -- JPM: Do we really need this?
infixr 5 :
data [] a = [] | a : [a]
+data Bool = False | True
+
+{-| The character type 'Char' is an enumeration whose values represent
+Unicode (or equivalently ISO\/IEC 10646) characters
+(see <http://www.unicode.org/> for details).
+This set extends the ISO 8859-1 (Latin-1) character set
+(the first 256 charachers), which is itself an extension of the ASCII
+character set (the first 128 characters).
+A character literal in Haskell has type 'Char'.
+
+To convert a 'Char' to or from the corresponding 'Int' value defined
+by Unicode, use 'Prelude.toEnum' and 'Prelude.fromEnum' from the
+'Prelude.Enum' class respectively (or equivalently 'ord' and 'chr').
+-}
data Char = C# Char#
data Int = I# Int#