Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 70ec89744a04da80369b4702b2c37256 > files > 232

ghc-doc-6.10.4-1mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--Rendered using the Haskell Html Library v0.2-->
<HTML
><HEAD
><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
><TITLE
>Data.Typeable</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_Data-Typeable.html")};</SCRIPT
></HEAD
><BODY
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topbar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
></TD
><TD CLASS="title"
>base-4.1.0.0: Basic libraries</TD
><TD CLASS="topbut"
><A HREF="index.html"
>Contents</A
></TD
><TD CLASS="topbut"
><A HREF="doc-index.html"
>Index</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="modulebar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><FONT SIZE="6"
>Data.Typeable</FONT
></TD
><TD ALIGN="right"
><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="infohead"
>Portability</TD
><TD CLASS="infoval"
>portable</TD
></TR
><TR
><TD CLASS="infohead"
>Stability</TD
><TD CLASS="infoval"
>experimental</TD
></TR
><TR
><TD CLASS="infohead"
>Maintainer</TD
><TD CLASS="infoval"
>libraries@haskell.org</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
><B
>Contents</B
></TD
></TR
><TR
><TD
><DL
><DT
><A HREF="#1"
>The Typeable class
</A
></DT
><DT
><A HREF="#2"
>Type-safe cast
</A
></DT
><DT
><A HREF="#3"
>Type representations
</A
></DT
><DT
><A HREF="#4"
>Construction of type representations
</A
></DT
><DT
><A HREF="#5"
>Observation of type representations
</A
></DT
><DT
><A HREF="#6"
>The other Typeable classes
</A
></DT
><DT
><A HREF="#7"
>Default instances
</A
></DT
></DL
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
>The <TT
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
></TT
> class reifies types to some extent by associating type
 representations to types. These type representations can be compared,
 and one can in turn define a type-safe cast operation. To this end,
 an unsafe cast is guarded by a test for type (representation)
 equivalence. The module <A HREF="Data-Dynamic.html"
>Data.Dynamic</A
> uses Typeable for an
 implementation of dynamics. The module <A HREF="Data-Generics.html"
>Data.Generics</A
> uses Typeable
 and type-safe cast (but not dynamics) to support the &quot;Scrap your
 boilerplate&quot; style of generic programming.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Synopsis</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3ATypeable"
>Typeable</A
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeOf"
>typeOf</A
> :: a -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Acast"
>cast</A
> :: (<A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a, <A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> b) =&gt; a -&gt; <A HREF="Data-Maybe.html#t%3AMaybe"
>Maybe</A
> b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Agcast"
>gcast</A
> :: (<A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a, <A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> b) =&gt; c a -&gt; <A HREF="Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (c b)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ATypeRep"
>TypeRep</A
> </TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ATyCon"
>TyCon</A
> </TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AshowsTypeRep"
>showsTypeRep</A
> :: <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; <A HREF="Text-Show.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkTyCon"
>mkTyCon</A
> :: <A HREF="Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkTyConApp"
>mkTyConApp</A
> :: <A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
> -&gt; [<A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
>] -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkAppTy"
>mkAppTy</A
> :: <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkFunTy"
>mkFunTy</A
> :: <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsplitTyConApp"
>splitTyConApp</A
> :: <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; (<A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
>, [<A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
>])</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfunResultTy"
>funResultTy</A
> :: <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; <A HREF="Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeRepTyCon"
>typeRepTyCon</A
> :: <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; <A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeRepArgs"
>typeRepArgs</A
> :: <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; [<A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtyConString"
>tyConString</A
> :: <A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
> -&gt; <A HREF="Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeRepKey"
>typeRepKey</A
> :: <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3ATypeable1"
>Typeable1</A
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeOf1"
>typeOf1</A
> ::  t a -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3ATypeable2"
>Typeable2</A
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeOf2"
>typeOf2</A
> ::  t a b -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3ATypeable3"
>Typeable3</A
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeOf3"
>typeOf3</A
> ::  t a b c -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3ATypeable4"
>Typeable4</A
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeOf4"
>typeOf4</A
> ::  t a b c d -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3ATypeable5"
>Typeable5</A
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeOf5"
>typeOf5</A
> ::  t a b c d e -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3ATypeable6"
>Typeable6</A
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeOf6"
>typeOf6</A
> ::  t a b c d e f -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3ATypeable7"
>Typeable7</A
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeOf7"
>typeOf7</A
> ::  t a b c d e f g -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Agcast1"
>gcast1</A
> :: (<A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> t, <A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> t') =&gt; c (t a) -&gt; <A HREF="Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (c (t' a))</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Agcast2"
>gcast2</A
> :: (<A HREF="Data-Typeable.html#t%3ATypeable2"
>Typeable2</A
> t, <A HREF="Data-Typeable.html#t%3ATypeable2"
>Typeable2</A
> t') =&gt; c (t a b) -&gt; <A HREF="Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (c (t' a b))</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeOfDefault"
>typeOfDefault</A
> :: (<A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> t, <A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a) =&gt; t a -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeOf1Default"
>typeOf1Default</A
> :: (<A HREF="Data-Typeable.html#t%3ATypeable2"
>Typeable2</A
> t, <A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a) =&gt; t a b -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeOf2Default"
>typeOf2Default</A
> :: (<A HREF="Data-Typeable.html#t%3ATypeable3"
>Typeable3</A
> t, <A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a) =&gt; t a b c -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeOf3Default"
>typeOf3Default</A
> :: (<A HREF="Data-Typeable.html#t%3ATypeable4"
>Typeable4</A
> t, <A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a) =&gt; t a b c d -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeOf4Default"
>typeOf4Default</A
> :: (<A HREF="Data-Typeable.html#t%3ATypeable5"
>Typeable5</A
> t, <A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a) =&gt; t a b c d e -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeOf5Default"
>typeOf5Default</A
> :: (<A HREF="Data-Typeable.html#t%3ATypeable6"
>Typeable6</A
> t, <A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a) =&gt; t a b c d e f -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeOf6Default"
>typeOf6Default</A
> :: (<A HREF="Data-Typeable.html#t%3ATypeable7"
>Typeable7</A
> t, <A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a) =&gt; t a b c d e f g -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="1"
><A NAME="1"
>The Typeable class
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:Typeable"
><A NAME="t%3ATypeable"
></A
></A
><B
>Typeable</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>The class <TT
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
></TT
> allows a concrete representation of a type to
 be calculated.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A NAME="v:typeOf"
><A NAME="v%3AtypeOf"
></A
></A
><B
>typeOf</B
> :: a -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="doc"
>Takes a value of type <TT
>a</TT
> and returns a concrete representation
 of that type.  The <EM
>value</EM
> of the argument should be ignored by
 any instance of <TT
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
></TT
>, so that it is safe to pass <TT
><A HREF="Prelude.html#v%3Aundefined"
>undefined</A
></TT
> as
 the argument.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Typeable')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Typeable" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble"
>Double</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat"
>Float</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Data-Int.html#t%3AInt8"
>Int8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Data-Int.html#t%3AInt16"
>Int16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Data-Int.html#t%3AInt32"
>Int32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Data-Int.html#t%3AInt64"
>Int64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="../ghc-prim/GHC-Ordering.html#t%3AOrdering"
>Ordering</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="../ghc-prim/GHC-Prim.html#t%3ARealWorld"
>RealWorld</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Data-Word.html#t%3AWord"
>Word</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Data-Word.html#t%3AWord16"
>Word16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Data-Word.html#t%3AWord32"
>Word32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Data-Word.html#t%3AWord64"
>Word64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Exception-Base.html#t%3AArithException"
>ArithException</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Exception-Base.html#t%3AErrorCall"
>ErrorCall</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Exception-Base.html#t%3ASomeException"
>SomeException</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntMax"
>CUIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACIntMax"
>CIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntPtr"
>CUIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACIntPtr"
>CIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACTime"
>CTime</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACClock"
>CClock</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACSigAtomic"
>CSigAtomic</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACWchar"
>CWchar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACSize"
>CSize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACPtrdiff"
>CPtrdiff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACLDouble"
>CLDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACDouble"
>CDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACFloat"
>CFloat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACULLong"
>CULLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACLLong"
>CLLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACULong"
>CULong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACLong"
>CLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACUInt"
>CUInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACInt"
>CInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACUShort"
>CUShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACShort"
>CShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACUChar"
>CUChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACSChar"
>CSChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-C-Types.html#t%3ACChar"
>CChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Exception-Base.html#t%3AIOException"
>IOException</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="System-Exit.html#t%3AExitCode"
>ExitCode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Exception-Base.html#t%3AArrayException"
>ArrayException</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Exception-Base.html#t%3AAsyncException"
>AsyncException</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Exception-Base.html#t%3AAssertionFailed"
>AssertionFailed</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Exception-Base.html#t%3ADeadlock"
>Deadlock</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Exception-Base.html#t%3ABlockedIndefinitely"
>BlockedIndefinitely</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Exception-Base.html#t%3ABlockedOnDeadMVar"
>BlockedOnDeadMVar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="System-IO.html#t%3AHandle"
>Handle</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Data-Dynamic.html#t%3ADynamic"
>Dynamic</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-Ptr.html#t%3AIntPtr"
>IntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Foreign-Ptr.html#t%3AWordPtr"
>WordPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="System-Posix-Types.html#t%3AFd"
>Fd</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="System-Posix-Types.html#t%3ACRLim"
>CRLim</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="System-Posix-Types.html#t%3ACTcflag"
>CTcflag</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="System-Posix-Types.html#t%3ACSpeed"
>CSpeed</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="System-Posix-Types.html#t%3ACCc"
>CCc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="System-Posix-Types.html#t%3ACUid"
>CUid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="System-Posix-Types.html#t%3ACNlink"
>CNlink</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="System-Posix-Types.html#t%3ACGid"
>CGid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="System-Posix-Types.html#t%3ACSsize"
>CSsize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="System-Posix-Types.html#t%3ACPid"
>CPid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="System-Posix-Types.html#t%3ACOff"
>COff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="System-Posix-Types.html#t%3ACMode"
>CMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="System-Posix-Types.html#t%3ACIno"
>CIno</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="System-Posix-Types.html#t%3ACDev"
>CDev</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Concurrent.html#t%3AThreadId"
>ThreadId</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Exception-Base.html#t%3ANestedAtomically"
>NestedAtomically</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Exception-Base.html#t%3ANonTermination"
>NonTermination</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Exception-Base.html#t%3ANoMethodError"
>NoMethodError</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Exception-Base.html#t%3ARecUpdError"
>RecUpdError</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Exception-Base.html#t%3ARecConError"
>RecConError</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Exception-Base.html#t%3ARecSelError"
>RecSelError</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Exception-Base.html#t%3APatternMatchFail"
>PatternMatchFail</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-OldException.html#t%3AException"
>Exception</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Concurrent-QSem.html#t%3AQSem"
>QSem</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Control-Concurrent-QSemN.html#t%3AQSemN"
>QSemN</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> Timeout</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Data-Version.html#t%3AVersion"
>Version</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="2"
><A NAME="2"
>Type-safe cast
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:cast"
><A NAME="v%3Acast"
></A
></A
><B
>cast</B
> :: (<A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a, <A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> b) =&gt; a -&gt; <A HREF="Data-Maybe.html#t%3AMaybe"
>Maybe</A
> b</TD
></TR
><TR
><TD CLASS="doc"
>The type-safe cast operation
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:gcast"
><A NAME="v%3Agcast"
></A
></A
><B
>gcast</B
> :: (<A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a, <A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> b) =&gt; c a -&gt; <A HREF="Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (c b)</TD
></TR
><TR
><TD CLASS="doc"
>A flexible variation parameterised in a type constructor
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="3"
><A NAME="3"
>Type representations
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:TypeRep"
><A NAME="t%3ATypeRep"
></A
></A
><B
>TypeRep</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A concrete representation of a (monomorphic) type.  <TT
><A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TT
>
 supports reasonably efficient equality.
</TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:TypeRep')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:TypeRep" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:TyCon"
><A NAME="t%3ATyCon"
></A
></A
><B
>TyCon</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>An abstract representation of a type constructor.  <TT
><A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
></TT
> objects can
 be built using <TT
><A HREF="Data-Typeable.html#v%3AmkTyCon"
>mkTyCon</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:TyCon')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:TyCon" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:showsTypeRep"
><A NAME="v%3AshowsTypeRep"
></A
></A
><B
>showsTypeRep</B
> :: <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; <A HREF="Text-Show.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="4"
><A NAME="4"
>Construction of type representations
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkTyCon"
><A NAME="v%3AmkTyCon"
></A
></A
><B
>mkTyCon</B
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>the name of the type constructor (should be unique
 in the program, so it might be wise to use the
 fully qualified name).
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
></TD
><TD CLASS="rdoc"
>A unique <TT
><A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
></TT
> object
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
><P
>Builds a <TT
><A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
></TT
> object representing a type constructor.  An
 implementation of <A HREF="Data-Typeable.html"
>Data.Typeable</A
> should ensure that the following holds:
</P
><PRE
>  mkTyCon &quot;a&quot; == mkTyCon &quot;a&quot;
</PRE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkTyConApp"
><A NAME="v%3AmkTyConApp"
></A
></A
><B
>mkTyConApp</B
> :: <A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
> -&gt; [<A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
>] -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="doc"
>Applies a type constructor to a sequence of types
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkAppTy"
><A NAME="v%3AmkAppTy"
></A
></A
><B
>mkAppTy</B
> :: <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="doc"
>Adds a TypeRep argument to a TypeRep.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkFunTy"
><A NAME="v%3AmkFunTy"
></A
></A
><B
>mkFunTy</B
> :: <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="doc"
>A special case of <TT
><A HREF="Data-Typeable.html#v%3AmkTyConApp"
>mkTyConApp</A
></TT
>, which applies the function 
 type constructor to a pair of types.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="5"
><A NAME="5"
>Observation of type representations
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:splitTyConApp"
><A NAME="v%3AsplitTyConApp"
></A
></A
><B
>splitTyConApp</B
> :: <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; (<A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
>, [<A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
>])</TD
></TR
><TR
><TD CLASS="doc"
>Splits a type constructor application
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:funResultTy"
><A NAME="v%3AfunResultTy"
></A
></A
><B
>funResultTy</B
> :: <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; <A HREF="Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="doc"
>Applies a type to a function type.  Returns: <TT
><TT
><A HREF="Data-Maybe.html#v%3AJust"
>Just</A
></TT
> u</TT
> if the
 first argument represents a function of type <TT
>t -&gt; u</TT
> and the
 second argument represents a function of type <TT
>t</TT
>.  Otherwise,
 returns <TT
><A HREF="Data-Maybe.html#v%3ANothing"
>Nothing</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:typeRepTyCon"
><A NAME="v%3AtypeRepTyCon"
></A
></A
><B
>typeRepTyCon</B
> :: <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; <A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
></TD
></TR
><TR
><TD CLASS="doc"
>Observe the type constructor of a type representation
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:typeRepArgs"
><A NAME="v%3AtypeRepArgs"
></A
></A
><B
>typeRepArgs</B
> :: <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; [<A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
>]</TD
></TR
><TR
><TD CLASS="doc"
>Observe the argument types of a type representation
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:tyConString"
><A NAME="v%3AtyConString"
></A
></A
><B
>tyConString</B
> :: <A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
> -&gt; <A HREF="Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="doc"
>Observe string encoding of a type representation
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:typeRepKey"
><A NAME="v%3AtypeRepKey"
></A
></A
><B
>typeRepKey</B
> :: <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Returns a unique integer associated with a <TT
><A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TT
>.  This can
 be used for making a mapping with TypeReps
 as the keys, for example.  It is guaranteed that <TT
>t1 == t2</TT
> if and only if
 <TT
>typeRepKey t1 == typeRepKey t2</TT
>.
</P
><P
>It is in the <TT
><A HREF="System-IO.html#t%3AIO"
>IO</A
></TT
> monad because the actual value of the key may
 vary from run to run of the program.  You should only rely on
 the equality property, not any actual key value.  The relative ordering
 of keys has no meaning either.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="6"
><A NAME="6"
>The other Typeable classes
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="doc"
><EM
>Note:</EM
> The general instances are provided for GHC only.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:Typeable1"
><A NAME="t%3ATypeable1"
></A
></A
><B
>Typeable1</B
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Variant for unary type constructors
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A NAME="v:typeOf1"
><A NAME="v%3AtypeOf1"
></A
></A
><B
>typeOf1</B
> ::  t a -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Typeable1')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Typeable1" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> []</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Data-Ratio.html#t%3ARatio"
>Ratio</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Foreign-StablePtr.html#t%3AStablePtr"
>StablePtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="System-IO.html#t%3AIO"
>IO</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Foreign-Ptr.html#t%3APtr"
>Ptr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Foreign-Ptr.html#t%3AFunPtr"
>FunPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Data-Maybe.html#t%3AMaybe"
>Maybe</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Data-IORef.html#t%3AIORef"
>IORef</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Control-Concurrent-MVar.html#t%3AMVar"
>MVar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="System-Mem-Weak.html#t%3AWeak"
>Weak</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Foreign-ForeignPtr.html#t%3AForeignPtr"
>ForeignPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="GHC-Conc.html#t%3ATVar"
>TVar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="GHC-Conc.html#t%3ASTM"
>STM</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Control-Concurrent-Chan.html#t%3AChan"
>Chan</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Data-Complex.html#t%3AComplex"
>Complex</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="System-Mem-StableName.html#t%3AStableName"
>StableName</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:Typeable2"
><A NAME="t%3ATypeable2"
></A
></A
><B
>Typeable2</B
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Variant for binary type constructors
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A NAME="v:typeOf2"
><A NAME="v%3AtypeOf2"
></A
></A
><B
>typeOf2</B
> ::  t a b -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Typeable2')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Typeable2" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable2"
>Typeable2</A
> (-&gt;)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable2"
>Typeable2</A
> <A HREF="Data-Either.html#t%3AEither"
>Either</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable2"
>Typeable2</A
> <A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%29"
>(,)</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable2"
>Typeable2</A
> <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable2"
>Typeable2</A
> <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable2"
>Typeable2</A
> <A HREF="Data-STRef.html#t%3ASTRef"
>STRef</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable2"
>Typeable2</A
> IOArray</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:Typeable3"
><A NAME="t%3ATypeable3"
></A
></A
><B
>Typeable3</B
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Variant for 3-ary type constructors
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A NAME="v:typeOf3"
><A NAME="v%3AtypeOf3"
></A
></A
><B
>typeOf3</B
> ::  t a b c -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Typeable3')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Typeable3" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable3"
>Typeable3</A
> <A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%29"
>(,,)</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable3"
>Typeable3</A
> <A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:Typeable4"
><A NAME="t%3ATypeable4"
></A
></A
><B
>Typeable4</B
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Variant for 4-ary type constructors
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A NAME="v:typeOf4"
><A NAME="v%3AtypeOf4"
></A
></A
><B
>typeOf4</B
> ::  t a b c d -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Typeable4')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Typeable4" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable4"
>Typeable4</A
> <A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%29"
>(,,,)</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:Typeable5"
><A NAME="t%3ATypeable5"
></A
></A
><B
>Typeable5</B
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Variant for 5-ary type constructors
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A NAME="v:typeOf5"
><A NAME="v%3AtypeOf5"
></A
></A
><B
>typeOf5</B
> ::  t a b c d e -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Typeable5')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Typeable5" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable5"
>Typeable5</A
> <A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%29"
>(,,,,)</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:Typeable6"
><A NAME="t%3ATypeable6"
></A
></A
><B
>Typeable6</B
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Variant for 6-ary type constructors
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A NAME="v:typeOf6"
><A NAME="v%3AtypeOf6"
></A
></A
><B
>typeOf6</B
> ::  t a b c d e f -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Typeable6')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Typeable6" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable6"
>Typeable6</A
> <A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%29"
>(,,,,,)</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:Typeable7"
><A NAME="t%3ATypeable7"
></A
></A
><B
>Typeable7</B
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Variant for 7-ary type constructors
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A NAME="v:typeOf7"
><A NAME="v%3AtypeOf7"
></A
></A
><B
>typeOf7</B
> ::  t a b c d e f g -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Typeable7')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Typeable7" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable7"
>Typeable7</A
> <A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,)</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:gcast1"
><A NAME="v%3Agcast1"
></A
></A
><B
>gcast1</B
> :: (<A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> t, <A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> t') =&gt; c (t a) -&gt; <A HREF="Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (c (t' a))</TD
></TR
><TR
><TD CLASS="doc"
>Cast for * -&gt; *
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:gcast2"
><A NAME="v%3Agcast2"
></A
></A
><B
>gcast2</B
> :: (<A HREF="Data-Typeable.html#t%3ATypeable2"
>Typeable2</A
> t, <A HREF="Data-Typeable.html#t%3ATypeable2"
>Typeable2</A
> t') =&gt; c (t a b) -&gt; <A HREF="Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (c (t' a b))</TD
></TR
><TR
><TD CLASS="doc"
>Cast for * -&gt; * -&gt; *
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="7"
><A NAME="7"
>Default instances
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="doc"
><EM
>Note:</EM
> These are not needed by GHC, for which these instances
 are generated by general instance declarations.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:typeOfDefault"
><A NAME="v%3AtypeOfDefault"
></A
></A
><B
>typeOfDefault</B
> :: (<A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> t, <A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a) =&gt; t a -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="doc"
>For defining a <TT
><A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
></TT
> instance from any <TT
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
></TT
> instance.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:typeOf1Default"
><A NAME="v%3AtypeOf1Default"
></A
></A
><B
>typeOf1Default</B
> :: (<A HREF="Data-Typeable.html#t%3ATypeable2"
>Typeable2</A
> t, <A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a) =&gt; t a b -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="doc"
>For defining a <TT
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
></TT
> instance from any <TT
><A HREF="Data-Typeable.html#t%3ATypeable2"
>Typeable2</A
></TT
> instance.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:typeOf2Default"
><A NAME="v%3AtypeOf2Default"
></A
></A
><B
>typeOf2Default</B
> :: (<A HREF="Data-Typeable.html#t%3ATypeable3"
>Typeable3</A
> t, <A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a) =&gt; t a b c -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="doc"
>For defining a <TT
><A HREF="Data-Typeable.html#t%3ATypeable2"
>Typeable2</A
></TT
> instance from any <TT
><A HREF="Data-Typeable.html#t%3ATypeable3"
>Typeable3</A
></TT
> instance.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:typeOf3Default"
><A NAME="v%3AtypeOf3Default"
></A
></A
><B
>typeOf3Default</B
> :: (<A HREF="Data-Typeable.html#t%3ATypeable4"
>Typeable4</A
> t, <A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a) =&gt; t a b c d -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="doc"
>For defining a <TT
><A HREF="Data-Typeable.html#t%3ATypeable3"
>Typeable3</A
></TT
> instance from any <TT
><A HREF="Data-Typeable.html#t%3ATypeable4"
>Typeable4</A
></TT
> instance.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:typeOf4Default"
><A NAME="v%3AtypeOf4Default"
></A
></A
><B
>typeOf4Default</B
> :: (<A HREF="Data-Typeable.html#t%3ATypeable5"
>Typeable5</A
> t, <A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a) =&gt; t a b c d e -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="doc"
>For defining a <TT
><A HREF="Data-Typeable.html#t%3ATypeable4"
>Typeable4</A
></TT
> instance from any <TT
><A HREF="Data-Typeable.html#t%3ATypeable5"
>Typeable5</A
></TT
> instance.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:typeOf5Default"
><A NAME="v%3AtypeOf5Default"
></A
></A
><B
>typeOf5Default</B
> :: (<A HREF="Data-Typeable.html#t%3ATypeable6"
>Typeable6</A
> t, <A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a) =&gt; t a b c d e f -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="doc"
>For defining a <TT
><A HREF="Data-Typeable.html#t%3ATypeable5"
>Typeable5</A
></TT
> instance from any <TT
><A HREF="Data-Typeable.html#t%3ATypeable6"
>Typeable6</A
></TT
> instance.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:typeOf6Default"
><A NAME="v%3AtypeOf6Default"
></A
></A
><B
>typeOf6Default</B
> :: (<A HREF="Data-Typeable.html#t%3ATypeable7"
>Typeable7</A
> t, <A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a) =&gt; t a b c d e f g -&gt; <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="doc"
>For defining a <TT
><A HREF="Data-Typeable.html#t%3ATypeable6"
>Typeable6</A
></TT
> instance from any <TT
><A HREF="Data-Typeable.html#t%3ATypeable7"
>Typeable7</A
></TT
> instance.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="botbar"
>Produced by <A HREF="http://www.haskell.org/haddock/"
>Haddock</A
> version 2.4.2</TD
></TR
></TABLE
></BODY
></HTML
>