<!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 >TcUnify</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_TcUnify.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" >ghc-6.12.3: The GHC API</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" >TcUnify</FONT ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Documentation</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:tcSubExp" ><A NAME="v%3AtcSubExp" ></A ></A ><B >tcSubExp</B > :: <A HREF="TcRnTypes.html#t%3AInstOrigin" >InstOrigin</A > -> <A HREF="TcType.html#t%3ABoxySigmaType" >BoxySigmaType</A > -> <A HREF="TcType.html#t%3ABoxySigmaType" >BoxySigmaType</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > <A HREF="HsBinds.html#t%3AHsWrapper" >HsWrapper</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:tcGen" ><A NAME="v%3AtcGen" ></A ></A ><B >tcGen</B > :: <A HREF="TcType.html#t%3ABoxySigmaType" >BoxySigmaType</A > -> <A HREF="TcType.html#t%3ATcTyVarSet" >TcTyVarSet</A > -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="TcType.html#t%3AUserTypeCtxt" >UserTypeCtxt</A > -> ([<A HREF="TcType.html#t%3ATcTyVar" >TcTyVar</A >] -> <A HREF="TcType.html#t%3ABoxyRhoType" >BoxyRhoType</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > result) -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > (<A HREF="HsBinds.html#t%3AHsWrapper" >HsWrapper</A >, result)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:checkSigTyVars" ><A NAME="v%3AcheckSigTyVars" ></A ></A ><B >checkSigTyVars</B > :: [<A HREF="TcType.html#t%3ATcTyVar" >TcTyVar</A >] -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:checkSigTyVarsWrt" ><A NAME="v%3AcheckSigTyVarsWrt" ></A ></A ><B >checkSigTyVarsWrt</B > :: <A HREF="TcType.html#t%3ATcTyVarSet" >TcTyVarSet</A > -> [<A HREF="TcType.html#t%3ATcTyVar" >TcTyVar</A >] -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:bleatEscapedTvs" ><A NAME="v%3AbleatEscapedTvs" ></A ></A ><B >bleatEscapedTvs</B > :: <A HREF="TcType.html#t%3ATcTyVarSet" >TcTyVarSet</A > -> [<A HREF="TcType.html#t%3ATcTyVar" >TcTyVar</A >] -> [<A HREF="TcType.html#t%3ATcTyVar" >TcTyVar</A >] -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigCtxt" ><A NAME="v%3AsigCtxt" ></A ></A ><B >sigCtxt</B > :: <A HREF="Var.html#t%3AId" >Id</A > -> [<A HREF="TcType.html#t%3ATcTyVar" >TcTyVar</A >] -> <A HREF="TcType.html#t%3ATcThetaType" >TcThetaType</A > -> <A HREF="TcType.html#t%3ATcTauType" >TcTauType</A > -> <A HREF="VarEnv.html#t%3ATidyEnv" >TidyEnv</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > (<A HREF="VarEnv.html#t%3ATidyEnv" >TidyEnv</A >, <A HREF="ErrUtils.html#t%3AMessage" >Message</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:unifyType" ><A NAME="v%3AunifyType" ></A ></A ><B >unifyType</B > :: <A HREF="TcType.html#t%3ATcTauType" >TcTauType</A > -> <A HREF="TcType.html#t%3ATcTauType" >TcTauType</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > <A HREF="Coercion.html#t%3ACoercionI" >CoercionI</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:unifyTypeList" ><A NAME="v%3AunifyTypeList" ></A ></A ><B >unifyTypeList</B > :: [<A HREF="TcType.html#t%3ATcTauType" >TcTauType</A >] -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:unifyTheta" ><A NAME="v%3AunifyTheta" ></A ></A ><B >unifyTheta</B > :: <A HREF="TcType.html#t%3ATcThetaType" >TcThetaType</A > -> <A HREF="TcType.html#t%3ATcThetaType" >TcThetaType</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > [<A HREF="Coercion.html#t%3ACoercionI" >CoercionI</A >]</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:unifyKind" ><A NAME="v%3AunifyKind" ></A ></A ><B >unifyKind</B > :: <A HREF="TcType.html#t%3ATcKind" >TcKind</A > -> <A HREF="TcType.html#t%3ATcKind" >TcKind</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:unifyKinds" ><A NAME="v%3AunifyKinds" ></A ></A ><B >unifyKinds</B > :: [<A HREF="TcType.html#t%3ATcKind" >TcKind</A >] -> [<A HREF="TcType.html#t%3ATcKind" >TcKind</A >] -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:unifyFunKind" ><A NAME="v%3AunifyFunKind" ></A ></A ><B >unifyFunKind</B > :: <A HREF="TcType.html#t%3ATcKind" >TcKind</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="TcType.html#t%3ATcKind" >TcKind</A >, <A HREF="TcType.html#t%3ATcKind" >TcKind</A >))</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:preSubType" ><A NAME="v%3ApreSubType" ></A ></A ><B >preSubType</B > :: [<A HREF="TcType.html#t%3ATcTyVar" >TcTyVar</A >] -> <A HREF="TcType.html#t%3ATcTyVarSet" >TcTyVarSet</A > -> <A HREF="TcType.html#t%3ATcType" >TcType</A > -> <A HREF="TcType.html#t%3ABoxySigmaType" >BoxySigmaType</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > [<A HREF="TcType.html#t%3ATcType" >TcType</A >]</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:boxyMatchTypes" ><A NAME="v%3AboxyMatchTypes" ></A ></A ><B >boxyMatchTypes</B > :: <A HREF="TcType.html#t%3ATcTyVarSet" >TcTyVarSet</A > -> [<A HREF="TcType.html#t%3ATcType" >TcType</A >] -> [<A HREF="TcType.html#t%3ABoxySigmaType" >BoxySigmaType</A >] -> <A HREF="Type.html#t%3ATvSubst" >TvSubst</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:tcInfer" ><A NAME="v%3AtcInfer" ></A ></A ><B >tcInfer</B > :: (<A HREF="TcType.html#t%3ABoxyType" >BoxyType</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > a) -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > (a, <A HREF="TcType.html#t%3ATcType" >TcType</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:subFunTys" ><A NAME="v%3AsubFunTys" ></A ></A ><B >subFunTys</B > :: <A HREF="Outputable.html#t%3ASDoc" >SDoc</A > -> <A HREF="BasicTypes.html#t%3AArity" >Arity</A > -> <A HREF="TcType.html#t%3ABoxySigmaType" >BoxySigmaType</A > -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="TcType.html#t%3AUserTypeCtxt" >UserTypeCtxt</A > -> ([<A HREF="TcType.html#t%3ABoxySigmaType" >BoxySigmaType</A >] -> <A HREF="TcType.html#t%3ABoxyRhoType" >BoxyRhoType</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > a) -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > (<A HREF="HsBinds.html#t%3AHsWrapper" >HsWrapper</A >, a)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:unBox" ><A NAME="v%3AunBox" ></A ></A ><B >unBox</B > :: <A HREF="TcType.html#t%3ABoxyType" >BoxyType</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > <A HREF="TcType.html#t%3ATcType" >TcType</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:refineBox" ><A NAME="v%3ArefineBox" ></A ></A ><B >refineBox</B > :: <A HREF="TcType.html#t%3ATcType" >TcType</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > <A HREF="TcType.html#t%3ATcType" >TcType</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:refineBoxToTau" ><A NAME="v%3ArefineBoxToTau" ></A ></A ><B >refineBoxToTau</B > :: <A HREF="TcType.html#t%3ATcType" >TcType</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > <A HREF="TcType.html#t%3ATcType" >TcType</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:withBox" ><A NAME="v%3AwithBox" ></A ></A ><B >withBox</B > :: <A HREF="Type.html#t%3AKind" >Kind</A > -> (<A HREF="TcType.html#t%3ABoxySigmaType" >BoxySigmaType</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > a) -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > (a, <A HREF="TcType.html#t%3ATcType" >TcType</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:boxyUnify" ><A NAME="v%3AboxyUnify" ></A ></A ><B >boxyUnify</B > :: <A HREF="TcType.html#t%3ABoxyType" >BoxyType</A > -> <A HREF="TcType.html#t%3ABoxyType" >BoxyType</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > <A HREF="Coercion.html#t%3ACoercionI" >CoercionI</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:boxyUnifyList" ><A NAME="v%3AboxyUnifyList" ></A ></A ><B >boxyUnifyList</B > :: [<A HREF="TcType.html#t%3ABoxyType" >BoxyType</A >] -> [<A HREF="TcType.html#t%3ABoxyType" >BoxyType</A >] -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > [<A HREF="Coercion.html#t%3ACoercionI" >CoercionI</A >]</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:zapToMonotype" ><A NAME="v%3AzapToMonotype" ></A ></A ><B >zapToMonotype</B > :: <A HREF="TcType.html#t%3ABoxySigmaType" >BoxySigmaType</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > <A HREF="TcType.html#t%3ATcTauType" >TcTauType</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:boxySplitListTy" ><A NAME="v%3AboxySplitListTy" ></A ></A ><B >boxySplitListTy</B > :: <A HREF="TcType.html#t%3ABoxyRhoType" >BoxyRhoType</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > (<A HREF="TcType.html#t%3ABoxySigmaType" >BoxySigmaType</A >, <A HREF="Coercion.html#t%3ACoercionI" >CoercionI</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:boxySplitPArrTy" ><A NAME="v%3AboxySplitPArrTy" ></A ></A ><B >boxySplitPArrTy</B > :: <A HREF="TcType.html#t%3ABoxyRhoType" >BoxyRhoType</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > (<A HREF="TcType.html#t%3ABoxySigmaType" >BoxySigmaType</A >, <A HREF="Coercion.html#t%3ACoercionI" >CoercionI</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:boxySplitTyConApp" ><A NAME="v%3AboxySplitTyConApp" ></A ></A ><B >boxySplitTyConApp</B > :: <A HREF="TyCon.html#t%3ATyCon" >TyCon</A > -> <A HREF="TcType.html#t%3ABoxyRhoType" >BoxyRhoType</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > ([<A HREF="TcType.html#t%3ABoxySigmaType" >BoxySigmaType</A >], <A HREF="Coercion.html#t%3ACoercionI" >CoercionI</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:boxySplitAppTy" ><A NAME="v%3AboxySplitAppTy" ></A ></A ><B >boxySplitAppTy</B > :: <A HREF="TcType.html#t%3ABoxyRhoType" >BoxyRhoType</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > ((<A HREF="TcType.html#t%3ABoxySigmaType" >BoxySigmaType</A >, <A HREF="TcType.html#t%3ABoxySigmaType" >BoxySigmaType</A >), <A HREF="Coercion.html#t%3ACoercionI" >CoercionI</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:wrapFunResCoercion" ><A NAME="v%3AwrapFunResCoercion" ></A ></A ><B >wrapFunResCoercion</B > :: [<A HREF="TcType.html#t%3ATcType" >TcType</A >] -> <A HREF="HsBinds.html#t%3AHsWrapper" >HsWrapper</A > -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > <A HREF="HsBinds.html#t%3AHsWrapper" >HsWrapper</A ></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.6.1</TD ></TR ></TABLE ></BODY ></HTML >