Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 6e204a966e8c42d976f99a1700ce5f20 > files > 3145

ghc-7.4.2-4.mga5.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Vectorise.Generic.Description</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Vectorise-Generic-Description.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ghc-7.4.2: The GHC API</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">Vectorise.Generic.Description</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Compute a description of the generic representation that we use for a user defined data type.
</p><p>During vectorisation, we generate a PRepr and PA instance for each user defined
 data type. The PA dictionary contains methods to convert the user type to and
 from our generic representation. This module computes a description of what
 that generic representation is.
</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span>  <a href="#t:CompRepr">CompRepr</a> <ul class="subs"><li>= <a href="#v:Keep">Keep</a> <a href="Type.html#t:Type">Type</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a>  </li><li>| <a href="#v:Wrap">Wrap</a> <a href="Type.html#t:Type">Type</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:ProdRepr">ProdRepr</a> <ul class="subs"><li>= <a href="#v:EmptyProd">EmptyProd</a>  </li><li>| <a href="#v:UnaryProd">UnaryProd</a> <a href="Vectorise-Generic-Description.html#t:CompRepr">CompRepr</a>  </li><li>| <a href="#v:Prod">Prod</a> { <ul class="subs"><li><a href="#v:repr_tup_tc">repr_tup_tc</a> :: <a href="TyCon.html#t:TyCon">TyCon</a></li><li><a href="#v:repr_ptup_tc">repr_ptup_tc</a> :: <a href="TyCon.html#t:TyCon">TyCon</a></li><li><a href="#v:repr_ptups_tc">repr_ptups_tc</a> :: <a href="TyCon.html#t:TyCon">TyCon</a></li><li><a href="#v:repr_comp_tys">repr_comp_tys</a> :: [<a href="Type.html#t:Type">Type</a>]</li><li><a href="#v:repr_comps">repr_comps</a> :: [<a href="Vectorise-Generic-Description.html#t:CompRepr">CompRepr</a>]</li></ul> }</li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:ConRepr">ConRepr</a>  = <a href="#v:ConRepr">ConRepr</a> {<ul class="subs"><li><a href="#v:repr_dc">repr_dc</a> :: <a href="DataCon.html#t:DataCon">DataCon</a></li><li><a href="#v:repr_prod">repr_prod</a> :: <a href="Vectorise-Generic-Description.html#t:ProdRepr">ProdRepr</a></li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:SumRepr">SumRepr</a> <ul class="subs"><li>= <a href="#v:EmptySum">EmptySum</a>  </li><li>| <a href="#v:UnarySum">UnarySum</a> <a href="Vectorise-Generic-Description.html#t:ConRepr">ConRepr</a>  </li><li>| <a href="#v:Sum">Sum</a> { <ul class="subs"><li><a href="#v:repr_sum_tc">repr_sum_tc</a> :: <a href="TyCon.html#t:TyCon">TyCon</a></li><li><a href="#v:repr_psum_tc">repr_psum_tc</a> :: <a href="TyCon.html#t:TyCon">TyCon</a></li><li><a href="#v:repr_psums_tc">repr_psums_tc</a> :: <a href="TyCon.html#t:TyCon">TyCon</a></li><li><a href="#v:repr_sel_ty">repr_sel_ty</a> :: <a href="Type.html#t:Type">Type</a></li><li><a href="#v:repr_sels_ty">repr_sels_ty</a> :: <a href="Type.html#t:Type">Type</a></li><li><a href="#v:repr_selsLength_v">repr_selsLength_v</a> :: <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></li><li><a href="#v:repr_con_tys">repr_con_tys</a> :: [<a href="Type.html#t:Type">Type</a>]</li><li><a href="#v:repr_cons">repr_cons</a> :: [<a href="Vectorise-Generic-Description.html#t:ConRepr">ConRepr</a>]</li></ul> }</li></ul></li><li class="src short"><a href="#v:tyConRepr">tyConRepr</a> :: <a href="TyCon.html#t:TyCon">TyCon</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="Vectorise-Generic-Description.html#t:SumRepr">SumRepr</a></li><li class="src short"><a href="#v:sumReprType">sumReprType</a> :: <a href="Vectorise-Generic-Description.html#t:SumRepr">SumRepr</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="Type.html#t:Type">Type</a></li><li class="src short"><a href="#v:compOrigType">compOrigType</a> :: <a href="Vectorise-Generic-Description.html#t:CompRepr">CompRepr</a> -&gt; <a href="Type.html#t:Type">Type</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CompRepr" class="def">CompRepr</a>  </p><div class="doc"><p>Describes the representation type of a data constructor field.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Keep" class="def">Keep</a> <a href="Type.html#t:Type">Type</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Wrap" class="def">Wrap</a> <a href="Type.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:CompRepr" class="caption collapser" onclick="toggleSection('i:CompRepr')">Instances</p><div id="section.i:CompRepr" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="Vectorise-Generic-Description.html#t:CompRepr">CompRepr</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:ProdRepr" class="def">ProdRepr</a>  </p><div class="doc"><p>Describes the representation type of the fields / components of a constructor.
   If the data constructor has multiple fields then we bundle them 
   together into a generic product type.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:EmptyProd" class="def">EmptyProd</a></td><td class="doc"><p>Data constructor has no fields.
</p></td></tr><tr><td class="src"><a name="v:UnaryProd" class="def">UnaryProd</a> <a href="Vectorise-Generic-Description.html#t:CompRepr">CompRepr</a></td><td class="doc"><p>Data constructor has a single field.
</p></td></tr><tr><td class="src"><a name="v:Prod" class="def">Prod</a></td><td class="doc"><p>Data constructor has several fields.
</p></td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:repr_tup_tc" class="def">repr_tup_tc</a> :: <a href="TyCon.html#t:TyCon">TyCon</a></dt><dd class="doc"><p>Representation tycon for the product (eg Tuple2)
</p></dd><dt class="src"><a name="v:repr_ptup_tc" class="def">repr_ptup_tc</a> :: <a href="TyCon.html#t:TyCon">TyCon</a></dt><dd class="doc"><p>PData  version of the product tycon  (eg PDataTuple2)
</p></dd><dt class="src"><a name="v:repr_ptups_tc" class="def">repr_ptups_tc</a> :: <a href="TyCon.html#t:TyCon">TyCon</a></dt><dd class="doc"><p>PDatas version of the product tycon  (eg PDatasTuple2s)
   Not all lifted backends use <code>PDatas</code>.
</p></dd><dt class="src"><a name="v:repr_comp_tys" class="def">repr_comp_tys</a> :: [<a href="Type.html#t:Type">Type</a>]</dt><dd class="doc"><p>Types of each field.
</p></dd><dt class="src"><a name="v:repr_comps" class="def">repr_comps</a> :: [<a href="Vectorise-Generic-Description.html#t:CompRepr">CompRepr</a>]</dt><dd class="doc"><p>Generic representation types for each field.
</p></dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:ProdRepr" class="caption collapser" onclick="toggleSection('i:ProdRepr')">Instances</p><div id="section.i:ProdRepr" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="Vectorise-Generic-Description.html#t:ProdRepr">ProdRepr</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:ConRepr" class="def">ConRepr</a>  </p><div class="doc"><p>Describes the representation type of a data constructor.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ConRepr" class="def">ConRepr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:repr_dc" class="def">repr_dc</a> :: <a href="DataCon.html#t:DataCon">DataCon</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:repr_prod" class="def">repr_prod</a> :: <a href="Vectorise-Generic-Description.html#t:ProdRepr">ProdRepr</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:ConRepr" class="caption collapser" onclick="toggleSection('i:ConRepr')">Instances</p><div id="section.i:ConRepr" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="Vectorise-Generic-Description.html#t:ConRepr">ConRepr</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:SumRepr" class="def">SumRepr</a>  </p><div class="doc"><p>Describes the generic representation of a data type.
   If the data type has multiple constructors then we bundle them
   together into a generic sum type.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:EmptySum" class="def">EmptySum</a></td><td class="doc"><p>Data type has no data constructors.
</p></td></tr><tr><td class="src"><a name="v:UnarySum" class="def">UnarySum</a> <a href="Vectorise-Generic-Description.html#t:ConRepr">ConRepr</a></td><td class="doc"><p>Data type has a single constructor.
</p></td></tr><tr><td class="src"><a name="v:Sum" class="def">Sum</a></td><td class="doc"><p>Data type has multiple constructors.
</p></td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:repr_sum_tc" class="def">repr_sum_tc</a> :: <a href="TyCon.html#t:TyCon">TyCon</a></dt><dd class="doc"><p>Representation tycon for the sum (eg Sum2)
</p></dd><dt class="src"><a name="v:repr_psum_tc" class="def">repr_psum_tc</a> :: <a href="TyCon.html#t:TyCon">TyCon</a></dt><dd class="doc"><p>PData version of the sum tycon     (eg PDataSum2)
   This TyCon doesn't appear explicitly in the source program.
   See Note [PData TyCons].
</p></dd><dt class="src"><a name="v:repr_psums_tc" class="def">repr_psums_tc</a> :: <a href="TyCon.html#t:TyCon">TyCon</a></dt><dd class="doc"><p>PDatas version of the sum tycon    (eg PDatasSum2)
</p></dd><dt class="src"><a name="v:repr_sel_ty" class="def">repr_sel_ty</a> :: <a href="Type.html#t:Type">Type</a></dt><dd class="doc"><p>Type of the selector               (eg Sel2)
</p></dd><dt class="src"><a name="v:repr_sels_ty" class="def">repr_sels_ty</a> :: <a href="Type.html#t:Type">Type</a></dt><dd class="doc"><p>Type of multi-selector             (eg Sel2s)
</p></dd><dt class="src"><a name="v:repr_selsLength_v" class="def">repr_selsLength_v</a> :: <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></dt><dd class="doc"><p>Function to get the length of a Sels of this type.
</p></dd><dt class="src"><a name="v:repr_con_tys" class="def">repr_con_tys</a> :: [<a href="Type.html#t:Type">Type</a>]</dt><dd class="doc"><p>Type of each data constructor.
</p></dd><dt class="src"><a name="v:repr_cons" class="def">repr_cons</a> :: [<a href="Vectorise-Generic-Description.html#t:ConRepr">ConRepr</a>]</dt><dd class="doc"><p>Generic representation types of each data constructor.
</p></dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:SumRepr" class="caption collapser" onclick="toggleSection('i:SumRepr')">Instances</p><div id="section.i:SumRepr" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="Vectorise-Generic-Description.html#t:SumRepr">SumRepr</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:tyConRepr" class="def">tyConRepr</a> :: <a href="TyCon.html#t:TyCon">TyCon</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="Vectorise-Generic-Description.html#t:SumRepr">SumRepr</a></p><div class="doc"><p>Determine the generic representation of a data type, given its tycon.
</p></div></div><div class="top"><p class="src"><a name="v:sumReprType" class="def">sumReprType</a> :: <a href="Vectorise-Generic-Description.html#t:SumRepr">SumRepr</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="Type.html#t:Type">Type</a></p><div class="doc"><p>Yield the type of this sum representation.
</p></div></div><div class="top"><p class="src"><a name="v:compOrigType" class="def">compOrigType</a> :: <a href="Vectorise-Generic-Description.html#t:CompRepr">CompRepr</a> -&gt; <a href="Type.html#t:Type">Type</a></p><div class="doc"><p>Yield the original component type of a data constructor component representation.
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>