<!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>BuildTyCl</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_BuildTyCl.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">BuildTyCl</p></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"><a href="#v:buildSynTyCon">buildSynTyCon</a> :: <a href="Name.html#t:Name">Name</a> -> [<a href="Var.html#t:TyVar">TyVar</a>] -> <a href="TyCon.html#t:SynTyConRhs">SynTyConRhs</a> -> <a href="Kind.html#t:Kind">Kind</a> -> <a href="TyCon.html#t:TyConParent">TyConParent</a> -> <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="TyCon.html#t:TyCon">TyCon</a>, [<a href="Type.html#t:Type">Type</a>]) -> <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> m n <a href="TyCon.html#t:TyCon">TyCon</a></li><li class="src short"><a href="#v:buildAlgTyCon">buildAlgTyCon</a> :: <a href="Name.html#t:Name">Name</a> -> [<a href="Var.html#t:TyVar">TyVar</a>] -> <a href="Type.html#t:ThetaType">ThetaType</a> -> <a href="TyCon.html#t:AlgTyConRhs">AlgTyConRhs</a> -> <a href="BasicTypes.html#t:RecFlag">RecFlag</a> -> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="TyCon.html#t:TyConParent">TyConParent</a> -> <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="TyCon.html#t:TyCon">TyCon</a>, [<a href="Type.html#t:Type">Type</a>]) -> <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> m n <a href="TyCon.html#t:TyCon">TyCon</a></li><li class="src short"><a href="#v:buildDataCon">buildDataCon</a> :: <a href="Name.html#t:Name">Name</a> -> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -> [<a href="BasicTypes.html#t:HsBang">HsBang</a>] -> [<a href="Name.html#t:Name">Name</a>] -> [<a href="Var.html#t:TyVar">TyVar</a>] -> [<a href="Var.html#t:TyVar">TyVar</a>] -> [(<a href="Var.html#t:TyVar">TyVar</a>, <a href="Type.html#t:Type">Type</a>)] -> <a href="Type.html#t:ThetaType">ThetaType</a> -> [<a href="Type.html#t:Type">Type</a>] -> <a href="Type.html#t:Type">Type</a> -> <a href="TyCon.html#t:TyCon">TyCon</a> -> <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> m n <a href="DataCon.html#t:DataCon">DataCon</a></li><li class="src short"><a href="#v:buildPromotedDataTyCon">buildPromotedDataTyCon</a> :: <a href="DataCon.html#t:DataCon">DataCon</a> -> <a href="TyCon.html#t:TyCon">TyCon</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:TcMethInfo">TcMethInfo</a> = (<a href="Name.html#t:Name">Name</a>, <a href="BasicTypes.html#t:DefMethSpec">DefMethSpec</a>, <a href="Type.html#t:Type">Type</a>)</li><li class="src short"><a href="#v:buildClass">buildClass</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Name.html#t:Name">Name</a> -> [<a href="Var.html#t:TyVar">TyVar</a>] -> <a href="Type.html#t:ThetaType">ThetaType</a> -> [<a href="Class.html#t:FunDep">FunDep</a> <a href="Var.html#t:TyVar">TyVar</a>] -> [<a href="Class.html#t:ClassATItem">ClassATItem</a>] -> [<a href="BuildTyCl.html#t:TcMethInfo">TcMethInfo</a>] -> <a href="BasicTypes.html#t:RecFlag">RecFlag</a> -> <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> m n <a href="Class.html#t:Class">Class</a></li><li class="src short"><a href="#v:distinctAbstractTyConRhs">distinctAbstractTyConRhs</a> :: <a href="TyCon.html#t:AlgTyConRhs">AlgTyConRhs</a></li><li class="src short"><a href="#v:totallyAbstractTyConRhs">totallyAbstractTyConRhs</a> :: <a href="TyCon.html#t:AlgTyConRhs">AlgTyConRhs</a></li><li class="src short"><a href="#v:mkNewTyConRhs">mkNewTyConRhs</a> :: <a href="Name.html#t:Name">Name</a> -> <a href="TyCon.html#t:TyCon">TyCon</a> -> <a href="DataCon.html#t:DataCon">DataCon</a> -> <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> m n <a href="TyCon.html#t:AlgTyConRhs">AlgTyConRhs</a></li><li class="src short"><a href="#v:mkDataTyConRhs">mkDataTyConRhs</a> :: [<a href="DataCon.html#t:DataCon">DataCon</a>] -> <a href="TyCon.html#t:AlgTyConRhs">AlgTyConRhs</a></li><li class="src short"><a href="#v:newImplicitBinder">newImplicitBinder</a> :: <a href="Name.html#t:Name">Name</a> -> (<a href="OccName.html#t:OccName">OccName</a> -> <a href="OccName.html#t:OccName">OccName</a>) -> <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> m n <a href="Name.html#t:Name">Name</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:buildSynTyCon" class="def">buildSynTyCon</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Name.html#t:Name">Name</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> [<a href="Var.html#t:TyVar">TyVar</a>]</td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="TyCon.html#t:SynTyConRhs">SynTyConRhs</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Kind.html#t:Kind">Kind</a></td><td class="doc"><p>Kind of the RHS </p></td></tr><tr><td class="src">-> <a href="TyCon.html#t:TyConParent">TyConParent</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="TyCon.html#t:TyCon">TyCon</a>, [<a href="Type.html#t:Type">Type</a>])</td><td class="doc"><p>family instance if applicable </p></td></tr><tr><td class="src">-> <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> m n <a href="TyCon.html#t:TyCon">TyCon</a></td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a name="v:buildAlgTyCon" class="def">buildAlgTyCon</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Name.html#t:Name">Name</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> [<a href="Var.html#t:TyVar">TyVar</a>]</td><td class="doc"><p>Kind variables adn type variables </p></td></tr><tr><td class="src">-> <a href="Type.html#t:ThetaType">ThetaType</a></td><td class="doc"><p>Stupid theta </p></td></tr><tr><td class="src">-> <a href="TyCon.html#t:AlgTyConRhs">AlgTyConRhs</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="BasicTypes.html#t:RecFlag">RecFlag</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc"><p>True <a href="=">=</a> was declared in GADT syntax </p></td></tr><tr><td class="src">-> <a href="TyCon.html#t:TyConParent">TyConParent</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="TyCon.html#t:TyCon">TyCon</a>, [<a href="Type.html#t:Type">Type</a>])</td><td class="doc"><p>family instance if applicable </p></td></tr><tr><td class="src">-> <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> m n <a href="TyCon.html#t:TyCon">TyCon</a></td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a name="v:buildDataCon" class="def">buildDataCon</a> :: <a href="Name.html#t:Name">Name</a> -> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -> [<a href="BasicTypes.html#t:HsBang">HsBang</a>] -> [<a href="Name.html#t:Name">Name</a>] -> [<a href="Var.html#t:TyVar">TyVar</a>] -> [<a href="Var.html#t:TyVar">TyVar</a>] -> [(<a href="Var.html#t:TyVar">TyVar</a>, <a href="Type.html#t:Type">Type</a>)] -> <a href="Type.html#t:ThetaType">ThetaType</a> -> [<a href="Type.html#t:Type">Type</a>] -> <a href="Type.html#t:Type">Type</a> -> <a href="TyCon.html#t:TyCon">TyCon</a> -> <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> m n <a href="DataCon.html#t:DataCon">DataCon</a></p></div><div class="top"><p class="src"><a name="v:buildPromotedDataTyCon" class="def">buildPromotedDataTyCon</a> :: <a href="DataCon.html#t:DataCon">DataCon</a> -> <a href="TyCon.html#t:TyCon">TyCon</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:TcMethInfo" class="def">TcMethInfo</a> = (<a href="Name.html#t:Name">Name</a>, <a href="BasicTypes.html#t:DefMethSpec">DefMethSpec</a>, <a href="Type.html#t:Type">Type</a>)</p></div><div class="top"><p class="src"><a name="v:buildClass" class="def">buildClass</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="Name.html#t:Name">Name</a> -> [<a href="Var.html#t:TyVar">TyVar</a>] -> <a href="Type.html#t:ThetaType">ThetaType</a> -> [<a href="Class.html#t:FunDep">FunDep</a> <a href="Var.html#t:TyVar">TyVar</a>] -> [<a href="Class.html#t:ClassATItem">ClassATItem</a>] -> [<a href="BuildTyCl.html#t:TcMethInfo">TcMethInfo</a>] -> <a href="BasicTypes.html#t:RecFlag">RecFlag</a> -> <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> m n <a href="Class.html#t:Class">Class</a></p></div><div class="top"><p class="src"><a name="v:distinctAbstractTyConRhs" class="def">distinctAbstractTyConRhs</a> :: <a href="TyCon.html#t:AlgTyConRhs">AlgTyConRhs</a></p></div><div class="top"><p class="src"><a name="v:totallyAbstractTyConRhs" class="def">totallyAbstractTyConRhs</a> :: <a href="TyCon.html#t:AlgTyConRhs">AlgTyConRhs</a></p></div><div class="top"><p class="src"><a name="v:mkNewTyConRhs" class="def">mkNewTyConRhs</a> :: <a href="Name.html#t:Name">Name</a> -> <a href="TyCon.html#t:TyCon">TyCon</a> -> <a href="DataCon.html#t:DataCon">DataCon</a> -> <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> m n <a href="TyCon.html#t:AlgTyConRhs">AlgTyConRhs</a></p><div class="doc"><p>Monadic because it makes a Name for the coercion TyCon We pass the Name of the parent TyCon, as well as the TyCon itself, because the latter is part of a knot, whereas the former is not. </p></div></div><div class="top"><p class="src"><a name="v:mkDataTyConRhs" class="def">mkDataTyConRhs</a> :: [<a href="DataCon.html#t:DataCon">DataCon</a>] -> <a href="TyCon.html#t:AlgTyConRhs">AlgTyConRhs</a></p></div><div class="top"><p class="src"><a name="v:newImplicitBinder" class="def">newImplicitBinder</a> :: <a href="Name.html#t:Name">Name</a> -> (<a href="OccName.html#t:OccName">OccName</a> -> <a href="OccName.html#t:OccName">OccName</a>) -> <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> m n <a href="Name.html#t:Name">Name</a></p></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>