This file is indexed.

/usr/share/doc/libghc-curry-frontend-doc/html/Env-TypeConstructor.html is in libghc-curry-frontend-doc 1.0.1-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!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>Env.TypeConstructor</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="file:///usr/share/javascript/mathjax/MathJax.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Env-TypeConstructor.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Env-TypeConstructor.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">curry-frontend-1.0.1: Compile the functional logic language Curry to several
intermediate formats</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>(c) 2002 - 2004 Wolfgang Lux<br />2011        Bj&#246;rn Peem&#246;ller<br />2016        Finn Teegen</td></tr><tr><th>License</th><td>BSD-3-clause</td></tr><tr><th>Maintainer</th><td>bjp@informatik.uni-kiel.de</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Env.TypeConstructor</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>For all defined types the compiler must maintain kind information.
    For algebraic data types and renaming types the compiler also records
    all data constructors belonging to that type, for alias types the
    type expression to be expanded is saved. Futhermore, recording the
    arity is necessary for alias types because the right hand side, i.e.,
    the type expression, can have arbitrary kind and therefore the type
    alias' arity cannot be determined from its own kind. For instance,
    the type alias type List = [] has the kind * -&gt; *, but its arity is 0.
    In order to manage the import and export of types, the names of the
    original definitions are also recorded. On import two types are
    considered equal if their original names match.</p><p>The information for a data constructor comprises the number of
    existentially quantified type variables, the context and the list
    of the argument types. Note that renaming type constructors have only
    one type argument.</p><p>For type classes the all their methods are saved. Type classes are
    recorded in the type constructor environment because type constructors
    and type classes share a common name space.</p><p>For type variables only their kind is recorded in the environment.</p><p>Importing and exporting algebraic data types and renaming types is
    complicated by the fact that the constructors of the type may be
    (partially) hidden in the interface. This facilitates the definition
    of abstract data types. An abstract type is always represented as a
    data type without constructors in the interface regardless of whether
    it is defined as a data type or as a renaming type. When only some
    constructors of a data type are hidden, those constructors are
    replaced by underscores in the interface. Furthermore, if the
    right-most constructors of a data type are hidden, they are not
    exported at all in order to make the interface more stable against
    changes which are private to the module.</p></div></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TypeInfo" class="def">TypeInfo</a> <a href="src/Env-TypeConstructor.html#TypeInfo" class="link">Source</a> <a href="#t:TypeInfo" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:DataType" class="def">DataType</a> <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:QualIdent">QualIdent</a> <a href="Base-Kinds.html#t:Kind">Kind</a> [<a href="Base-Types.html#t:DataConstr">DataConstr</a>]</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:RenamingType" class="def">RenamingType</a> <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:QualIdent">QualIdent</a> <a href="Base-Kinds.html#t:Kind">Kind</a> <a href="Base-Types.html#t:DataConstr">DataConstr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AliasType" class="def">AliasType</a> <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:QualIdent">QualIdent</a> <a href="Base-Kinds.html#t:Kind">Kind</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> <a href="Base-Types.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:TypeClass" class="def">TypeClass</a> <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:QualIdent">QualIdent</a> <a href="Base-Kinds.html#t:Kind">Kind</a> [<a href="Base-Types.html#t:ClassMethod">ClassMethod</a>]</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:TypeVar" class="def">TypeVar</a> <a href="Base-Kinds.html#t:Kind">Kind</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:TypeInfo" class="caption collapser" onclick="toggleSection('i:TypeInfo')">Instances</p><div id="section.i:TypeInfo" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TypeInfo:Show:1" class="instance expander" onclick="toggleSection('i:id:TypeInfo:Show:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:Show">Show</a> <a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a></span> <a href="src/Env-TypeConstructor.html#line-75" class="link">Source</a> <a href="#t:TypeInfo" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:TypeInfo:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TypeInfo:Pretty:2" class="instance expander" onclick="toggleSection('i:id:TypeInfo:Pretty:2')"></span> <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Pretty.html#t:Pretty">Pretty</a> <a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a></span> <a href="src/Env-TypeConstructor.html#line-101" class="link">Source</a> <a href="#t:TypeInfo" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:TypeInfo:Pretty:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pPrint">pPrint</a> :: <a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:pPrint" class="selflink">#</a></p><p class="src"><a href="#v:pPrintPrec">pPrintPrec</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:pPrintPrec" class="selflink">#</a></p><p class="src"><a href="#v:pPrintList">pPrintList</a> :: [<a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/pretty-1.1.3.3/Text-PrettyPrint.html#t:Doc">Doc</a> <a href="#v:pPrintList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TypeInfo:Entity:3" class="instance expander" onclick="toggleSection('i:id:TypeInfo:Entity:3')"></span> <a href="Base-TopEnv.html#t:Entity">Entity</a> <a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a></span> <a href="src/Env-TypeConstructor.html#line-77" class="link">Source</a> <a href="#t:TypeInfo" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:TypeInfo:Entity:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:origName">origName</a> :: <a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a> -&gt; <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:QualIdent">QualIdent</a> <a href="src/Base-TopEnv.html#origName" class="link">Source</a> <a href="#v:origName" class="selflink">#</a></p><p class="src"><a href="#v:merge">merge</a> :: <a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a> -&gt; <a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a> <a href="src/Base-TopEnv.html#merge" class="link">Source</a> <a href="#v:merge" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:TypeInfo:SubstKind:4" class="instance expander" onclick="toggleSection('i:id:TypeInfo:SubstKind:4')"></span> <a href="Base-KindSubst.html#t:SubstKind">SubstKind</a> <a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a></span> <a href="src/Base-KindSubst.html#line-40" class="link">Source</a> <a href="#t:SubstKind" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:TypeInfo:SubstKind:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:subst">subst</a> :: <a href="Base-KindSubst.html#t:KindSubst">KindSubst</a> -&gt; <a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a> -&gt; <a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a> <a href="src/Base-KindSubst.html#subst" class="link">Source</a> <a href="#v:subst" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:tcKind" class="def">tcKind</a> :: <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:ModuleIdent">ModuleIdent</a> -&gt; <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:QualIdent">QualIdent</a> -&gt; <a href="Env-TypeConstructor.html#t:TCEnv">TCEnv</a> -&gt; <a href="Base-Kinds.html#t:Kind">Kind</a> <a href="src/Env-TypeConstructor.html#tcKind" class="link">Source</a> <a href="#v:tcKind" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:clsKind" class="def">clsKind</a> :: <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:ModuleIdent">ModuleIdent</a> -&gt; <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:QualIdent">QualIdent</a> -&gt; <a href="Env-TypeConstructor.html#t:TCEnv">TCEnv</a> -&gt; <a href="Base-Kinds.html#t:Kind">Kind</a> <a href="src/Env-TypeConstructor.html#clsKind" class="link">Source</a> <a href="#v:clsKind" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:varKind" class="def">varKind</a> :: <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:Ident">Ident</a> -&gt; <a href="Env-TypeConstructor.html#t:TCEnv">TCEnv</a> -&gt; <a href="Base-Kinds.html#t:Kind">Kind</a> <a href="src/Env-TypeConstructor.html#varKind" class="link">Source</a> <a href="#v:varKind" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:clsMethods" class="def">clsMethods</a> :: <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:ModuleIdent">ModuleIdent</a> -&gt; <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:QualIdent">QualIdent</a> -&gt; <a href="Env-TypeConstructor.html#t:TCEnv">TCEnv</a> -&gt; [<a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:Ident">Ident</a>] <a href="src/Env-TypeConstructor.html#clsMethods" class="link">Source</a> <a href="#v:clsMethods" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:TCEnv" class="def">TCEnv</a> = <a href="Base-TopEnv.html#t:TopEnv">TopEnv</a> <a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a> <a href="src/Env-TypeConstructor.html#TCEnv" class="link">Source</a> <a href="#t:TCEnv" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:initTCEnv" class="def">initTCEnv</a> :: <a href="Env-TypeConstructor.html#t:TCEnv">TCEnv</a> <a href="src/Env-TypeConstructor.html#initTCEnv" class="link">Source</a> <a href="#v:initTCEnv" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:bindTypeInfo" class="def">bindTypeInfo</a> :: <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:ModuleIdent">ModuleIdent</a> -&gt; <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:Ident">Ident</a> -&gt; <a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a> -&gt; <a href="Env-TypeConstructor.html#t:TCEnv">TCEnv</a> -&gt; <a href="Env-TypeConstructor.html#t:TCEnv">TCEnv</a> <a href="src/Env-TypeConstructor.html#bindTypeInfo" class="link">Source</a> <a href="#v:bindTypeInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:rebindTypeInfo" class="def">rebindTypeInfo</a> :: <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:ModuleIdent">ModuleIdent</a> -&gt; <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:Ident">Ident</a> -&gt; <a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a> -&gt; <a href="Env-TypeConstructor.html#t:TCEnv">TCEnv</a> -&gt; <a href="Env-TypeConstructor.html#t:TCEnv">TCEnv</a> <a href="src/Env-TypeConstructor.html#rebindTypeInfo" class="link">Source</a> <a href="#v:rebindTypeInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:lookupTypeInfo" class="def">lookupTypeInfo</a> :: <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:Ident">Ident</a> -&gt; <a href="Env-TypeConstructor.html#t:TCEnv">TCEnv</a> -&gt; [<a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a>] <a href="src/Env-TypeConstructor.html#lookupTypeInfo" class="link">Source</a> <a href="#v:lookupTypeInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:qualLookupTypeInfo" class="def">qualLookupTypeInfo</a> :: <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:QualIdent">QualIdent</a> -&gt; <a href="Env-TypeConstructor.html#t:TCEnv">TCEnv</a> -&gt; [<a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a>] <a href="src/Env-TypeConstructor.html#qualLookupTypeInfo" class="link">Source</a> <a href="#v:qualLookupTypeInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:qualLookupTypeInfoUnique" class="def">qualLookupTypeInfoUnique</a> :: <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:ModuleIdent">ModuleIdent</a> -&gt; <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:QualIdent">QualIdent</a> -&gt; <a href="Env-TypeConstructor.html#t:TCEnv">TCEnv</a> -&gt; [<a href="Env-TypeConstructor.html#t:TypeInfo">TypeInfo</a>] <a href="src/Env-TypeConstructor.html#qualLookupTypeInfoUnique" class="link">Source</a> <a href="#v:qualLookupTypeInfoUnique" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getOrigName" class="def">getOrigName</a> :: <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:ModuleIdent">ModuleIdent</a> -&gt; <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:QualIdent">QualIdent</a> -&gt; <a href="Env-TypeConstructor.html#t:TCEnv">TCEnv</a> -&gt; <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:QualIdent">QualIdent</a> <a href="src/Env-TypeConstructor.html#getOrigName" class="link">Source</a> <a href="#v:getOrigName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:reverseLookupByOrigName" class="def">reverseLookupByOrigName</a> :: <a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:QualIdent">QualIdent</a> -&gt; <a href="Env-TypeConstructor.html#t:TCEnv">TCEnv</a> -&gt; [<a href="file:///usr/share/doc/libghc-curry-base-doc/html/Curry-Base-Ident.html#t:QualIdent">QualIdent</a>] <a href="src/Env-TypeConstructor.html#reverseLookupByOrigName" class="link">Source</a> <a href="#v:reverseLookupByOrigName" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.17.3</p></div></body></html>