<!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 >SrcLoc</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_SrcLoc.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" >SrcLoc</FONT ></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" >SrcLoc </A ></DT ><DD ><DL ><DT ><A HREF="#2" >Constructing SrcLoc </A ></DT ><DT ><A HREF="#3" >Unsafely deconstructing SrcLoc </A ></DT ><DT ><A HREF="#4" >Misc. operations on SrcLoc </A ></DT ><DT ><A HREF="#5" >Predicates on SrcLoc </A ></DT ></DL ></DD ><DT ><A HREF="#6" >SrcSpan </A ></DT ><DD ><DL ><DT ><A HREF="#7" >Constructing SrcSpan </A ></DT ><DT ><A HREF="#8" >Deconstructing SrcSpan </A ></DT ><DT ><A HREF="#9" >Unsafely deconstructing SrcSpan </A ></DT ><DT ><A HREF="#10" >Predicates on SrcSpan </A ></DT ></DL ></DD ><DT ><A HREF="#11" >Located </A ></DT ><DD ><DL ><DT ><A HREF="#12" >Constructing Located </A ></DT ><DT ><A HREF="#13" >Deconstructing Located </A ></DT ><DT ><A HREF="#14" >Combining and comparing Located values </A ></DT ></DL ></DD ></DL ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" >This module contains types that relate to the positions of things in source files, and allow tagging of those things with locations </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" >data</SPAN > <A HREF="#t%3ASrcLoc" >SrcLoc</A > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkSrcLoc" >mkSrcLoc</A > :: <A HREF="FastString.html#t%3AFastString" >FastString</A > -> <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkGeneralSrcLoc" >mkGeneralSrcLoc</A > :: <A HREF="FastString.html#t%3AFastString" >FastString</A > -> <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnoSrcLoc" >noSrcLoc</A > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgeneratedSrcLoc" >generatedSrcLoc</A > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AinteractiveSrcLoc" >interactiveSrcLoc</A > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AadvanceSrcLoc" >advanceSrcLoc</A > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A > -> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AChar" >Char</A > -> <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsrcLocFile" >srcLocFile</A > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A > -> <A HREF="FastString.html#t%3AFastString" >FastString</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsrcLocLine" >srcLocLine</A > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A > -> <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsrcLocCol" >srcLocCol</A > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A > -> <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3ApprDefnLoc" >pprDefnLoc</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="Outputable.html#t%3ASDoc" >SDoc</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisGoodSrcLoc" >isGoodSrcLoc</A > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ASrcSpan" >SrcSpan</A > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkGeneralSrcSpan" >mkGeneralSrcSpan</A > :: <A HREF="FastString.html#t%3AFastString" >FastString</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkSrcSpan" >mkSrcSpan</A > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A > -> <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnoSrcSpan" >noSrcSpan</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AwiredInSrcSpan" >wiredInSrcSpan</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsrcLocSpan" >srcLocSpan</A > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcombineSrcSpans" >combineSrcSpans</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsrcSpanStart" >srcSpanStart</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsrcSpanEnd" >srcSpanEnd</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsrcSpanFileName_maybe" >srcSpanFileName_maybe</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="FastString.html#t%3AFastString" >FastString</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsrcSpanFile" >srcSpanFile</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="FastString.html#t%3AFastString" >FastString</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsrcSpanStartLine" >srcSpanStartLine</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsrcSpanEndLine" >srcSpanEndLine</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsrcSpanStartCol" >srcSpanStartCol</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsrcSpanEndCol" >srcSpanEndCol</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisGoodSrcSpan" >isGoodSrcSpan</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisOneLineSpan" >isOneLineSpan</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ALocated" >Located</A > e = <A HREF="#v%3AL" >L</A > <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > e</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnoLoc" >noLoc</A > :: e -> <A HREF="SrcLoc.html#t%3ALocated" >Located</A > e</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkGeneralLocated" >mkGeneralLocated</A > :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> e -> <A HREF="SrcLoc.html#t%3ALocated" >Located</A > e</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetLoc" >getLoc</A > :: <A HREF="SrcLoc.html#t%3ALocated" >Located</A > e -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AunLoc" >unLoc</A > :: <A HREF="SrcLoc.html#t%3ALocated" >Located</A > e -> e</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AeqLocated" >eqLocated</A > :: <A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > a => <A HREF="SrcLoc.html#t%3ALocated" >Located</A > a -> <A HREF="SrcLoc.html#t%3ALocated" >Located</A > a -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcmpLocated" >cmpLocated</A > :: <A HREF="../base-4.2.0.2/Data-Ord.html#t%3AOrd" >Ord</A > a => <A HREF="SrcLoc.html#t%3ALocated" >Located</A > a -> <A HREF="SrcLoc.html#t%3ALocated" >Located</A > a -> <A HREF="../base-4.2.0.2/Data-Ord.html#t%3AOrdering" >Ordering</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcombineLocs" >combineLocs</A > :: <A HREF="SrcLoc.html#t%3ALocated" >Located</A > a -> <A HREF="SrcLoc.html#t%3ALocated" >Located</A > b -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AaddCLoc" >addCLoc</A > :: <A HREF="SrcLoc.html#t%3ALocated" >Located</A > a -> <A HREF="SrcLoc.html#t%3ALocated" >Located</A > b -> c -> <A HREF="SrcLoc.html#t%3ALocated" >Located</A > c</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aleftmost_smallest" >leftmost_smallest</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Ord.html#t%3AOrdering" >Ordering</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aleftmost_largest" >leftmost_largest</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Ord.html#t%3AOrdering" >Ordering</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Arightmost" >rightmost</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Ord.html#t%3AOrdering" >Ordering</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aspans" >spans</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> (<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A >, <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A >) -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisSubspanOf" >isSubspanOf</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</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" >SrcLoc </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:SrcLoc" ><A NAME="t%3ASrcLoc" ></A ></A ><B >SrcLoc</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Represents a single point within a file </TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:SrcLoc')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:SrcLoc" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Data-Ord.html#t%3AOrd" >Ord</A > <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Outputable.html#t%3AOutputable" >Outputable</A > <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="2" ><A NAME="2" >Constructing SrcLoc </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkSrcLoc" ><A NAME="v%3AmkSrcLoc" ></A ></A ><B >mkSrcLoc</B > :: <A HREF="FastString.html#t%3AFastString" >FastString</A > -> <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkGeneralSrcLoc" ><A NAME="v%3AmkGeneralSrcLoc" ></A ></A ><B >mkGeneralSrcLoc</B > :: <A HREF="FastString.html#t%3AFastString" >FastString</A > -> <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ><TR ><TD CLASS="doc" >Creates a <A HREF="bad.html" >bad</A > <TT ><A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TT > that has no detailed information about its location </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:noSrcLoc" ><A NAME="v%3AnoSrcLoc" ></A ></A ><B >noSrcLoc</B > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:generatedSrcLoc" ><A NAME="v%3AgeneratedSrcLoc" ></A ></A ><B >generatedSrcLoc</B > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ><TR ><TD CLASS="doc" >Built-in <A HREF="bad.html" >bad</A > <TT ><A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TT > values for particular locations </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:interactiveSrcLoc" ><A NAME="v%3AinteractiveSrcLoc" ></A ></A ><B >interactiveSrcLoc</B > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:advanceSrcLoc" ><A NAME="v%3AadvanceSrcLoc" ></A ></A ><B >advanceSrcLoc</B > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A > -> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AChar" >Char</A > -> <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ><TR ><TD CLASS="doc" >Move the <TT ><A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TT > down by one line if the character is a newline and across by one character in any other case </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="3" ><A NAME="3" >Unsafely deconstructing SrcLoc </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:srcLocFile" ><A NAME="v%3AsrcLocFile" ></A ></A ><B >srcLocFile</B > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A > -> <A HREF="FastString.html#t%3AFastString" >FastString</A ></TD ></TR ><TR ><TD CLASS="doc" >Gives the filename of the <TT ><A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TT > if it is available, otherwise returns a dummy value </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:srcLocLine" ><A NAME="v%3AsrcLocLine" ></A ></A ><B >srcLocLine</B > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A > -> <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="doc" >Raises an error when used on a <A HREF="bad.html" >bad</A > <TT ><A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TT > </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:srcLocCol" ><A NAME="v%3AsrcLocCol" ></A ></A ><B >srcLocCol</B > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A > -> <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="doc" >Raises an error when used on a <A HREF="bad.html" >bad</A > <TT ><A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TT > </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="4" ><A NAME="4" >Misc. operations on SrcLoc </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:pprDefnLoc" ><A NAME="v%3ApprDefnLoc" ></A ></A ><B >pprDefnLoc</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="Outputable.html#t%3ASDoc" >SDoc</A ></TD ></TR ><TR ><TD CLASS="doc" >Pretty prints information about the <TT ><A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TT > in the style <A HREF="defined at ---.html" >defined at ...</A > </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="5" ><A NAME="5" >Predicates on SrcLoc </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:isGoodSrcLoc" ><A NAME="v%3AisGoodSrcLoc" ></A ></A ><B >isGoodSrcLoc</B > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="doc" ><A HREF="Good.html" >Good</A > <TT ><A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TT >s have precise information about their location </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="6" ><A NAME="6" >SrcSpan </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:SrcSpan" ><A NAME="t%3ASrcSpan" ></A ></A ><B >SrcSpan</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" ><P >A SrcSpan delimits a portion of a text file. It could be represented by a pair of (line,column) coordinates, but in fact we optimise slightly by using more compact representations for single-line and zero-length spans, both of which are quite common. </P ><P >The end position is defined to be the column <EM >after</EM > the end of the span. That is, a span of (1,1)-(1,2) is one character long, and a span of (1,1)-(1,1) is zero characters long. </P ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:SrcSpan')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:SrcSpan" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Data-Ord.html#t%3AOrd" >Ord</A > <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Outputable.html#t%3AOutputable" >Outputable</A > <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="7" ><A NAME="7" >Constructing SrcSpan </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkGeneralSrcSpan" ><A NAME="v%3AmkGeneralSrcSpan" ></A ></A ><B >mkGeneralSrcSpan</B > :: <A HREF="FastString.html#t%3AFastString" >FastString</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="doc" >Create a <A HREF="bad.html" >bad</A > <TT ><A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TT > that has not location information </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkSrcSpan" ><A NAME="v%3AmkSrcSpan" ></A ></A ><B >mkSrcSpan</B > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A > -> <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="doc" >Create a <TT ><A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TT > between two points in a file </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:noSrcSpan" ><A NAME="v%3AnoSrcSpan" ></A ></A ><B >noSrcSpan</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:wiredInSrcSpan" ><A NAME="v%3AwiredInSrcSpan" ></A ></A ><B >wiredInSrcSpan</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="doc" >Built-in <A HREF="bad.html" >bad</A > <TT ><A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TT >s for common sources of location uncertainty </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:srcLocSpan" ><A NAME="v%3AsrcLocSpan" ></A ></A ><B >srcLocSpan</B > :: <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="doc" >Create a <TT ><A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TT > corresponding to a single point </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:combineSrcSpans" ><A NAME="v%3AcombineSrcSpans" ></A ></A ><B >combineSrcSpans</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="doc" >Combines two <TT ><A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TT > into one that spans at least all the characters within both spans. Assumes the <A HREF="file.html" >file</A > part is the same in both inputs </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="8" ><A NAME="8" >Deconstructing SrcSpan </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:srcSpanStart" ><A NAME="v%3AsrcSpanStart" ></A ></A ><B >srcSpanStart</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ><TR ><TD CLASS="doc" >Returns the location at the start of the <TT ><A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TT > or a <A HREF="bad.html" >bad</A > <TT ><A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TT > if that is unavailable </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:srcSpanEnd" ><A NAME="v%3AsrcSpanEnd" ></A ></A ><B >srcSpanEnd</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="SrcLoc.html#t%3ASrcLoc" >SrcLoc</A ></TD ></TR ><TR ><TD CLASS="doc" >Returns the location at the end of the <TT ><A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TT > or a <A HREF="bad.html" >bad</A > <TT ><A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TT > if that is unavailable </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:srcSpanFileName_maybe" ><A NAME="v%3AsrcSpanFileName_maybe" ></A ></A ><B >srcSpanFileName_maybe</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="FastString.html#t%3AFastString" >FastString</A ></TD ></TR ><TR ><TD CLASS="doc" >Obtains the filename for a <TT ><A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TT > if it is <A HREF="good.html" >good</A > </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="9" ><A NAME="9" >Unsafely deconstructing SrcSpan </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:srcSpanFile" ><A NAME="v%3AsrcSpanFile" ></A ></A ><B >srcSpanFile</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="FastString.html#t%3AFastString" >FastString</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:srcSpanStartLine" ><A NAME="v%3AsrcSpanStartLine" ></A ></A ><B >srcSpanStartLine</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="doc" >Raises an error when used on a <A HREF="bad.html" >bad</A > <TT ><A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TT > </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:srcSpanEndLine" ><A NAME="v%3AsrcSpanEndLine" ></A ></A ><B >srcSpanEndLine</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="doc" >Raises an error when used on a <A HREF="bad.html" >bad</A > <TT ><A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TT > </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:srcSpanStartCol" ><A NAME="v%3AsrcSpanStartCol" ></A ></A ><B >srcSpanStartCol</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="doc" >Raises an error when used on a <A HREF="bad.html" >bad</A > <TT ><A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TT > </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:srcSpanEndCol" ><A NAME="v%3AsrcSpanEndCol" ></A ></A ><B >srcSpanEndCol</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="doc" >Raises an error when used on a <A HREF="bad.html" >bad</A > <TT ><A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TT > </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="10" ><A NAME="10" >Predicates on SrcSpan </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:isGoodSrcSpan" ><A NAME="v%3AisGoodSrcSpan" ></A ></A ><B >isGoodSrcSpan</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="doc" >Test if a <TT ><A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TT > is <A HREF="good.html" >good</A >, i.e. has precise location information </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:isOneLineSpan" ><A NAME="v%3AisOneLineSpan" ></A ></A ><B >isOneLineSpan</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="doc" >True if the span is known to straddle only one line. For <A HREF="bad.html" >bad</A > <TT ><A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TT >, it returns False </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="11" ><A NAME="11" >Located </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:Located" ><A NAME="t%3ALocated" ></A ></A ><B >Located</B > e </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >We attach SrcSpans to lots of things, so let's have a datatype for it. </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:L" ><A NAME="v%3AL" ></A ></A ><B >L</B > <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > e</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Located')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Located" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Control-Monad.html#t%3AFunctor" >Functor</A > <A HREF="SrcLoc.html#t%3ALocated" >Located</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Outputable.html#t%3AOutputable" >Outputable</A > e => <A HREF="Outputable.html#t%3AOutputable" >Outputable</A > (<A HREF="SrcLoc.html#t%3ALocated" >Located</A > e)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="12" ><A NAME="12" >Constructing Located </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:noLoc" ><A NAME="v%3AnoLoc" ></A ></A ><B >noLoc</B > :: e -> <A HREF="SrcLoc.html#t%3ALocated" >Located</A > e</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkGeneralLocated" ><A NAME="v%3AmkGeneralLocated" ></A ></A ><B >mkGeneralLocated</B > :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> e -> <A HREF="SrcLoc.html#t%3ALocated" >Located</A > e</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="13" ><A NAME="13" >Deconstructing Located </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getLoc" ><A NAME="v%3AgetLoc" ></A ></A ><B >getLoc</B > :: <A HREF="SrcLoc.html#t%3ALocated" >Located</A > e -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:unLoc" ><A NAME="v%3AunLoc" ></A ></A ><B >unLoc</B > :: <A HREF="SrcLoc.html#t%3ALocated" >Located</A > e -> e</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="14" ><A NAME="14" >Combining and comparing Located values </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:eqLocated" ><A NAME="v%3AeqLocated" ></A ></A ><B >eqLocated</B > :: <A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > a => <A HREF="SrcLoc.html#t%3ALocated" >Located</A > a -> <A HREF="SrcLoc.html#t%3ALocated" >Located</A > a -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="doc" >Tests whether the two located things are equal </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:cmpLocated" ><A NAME="v%3AcmpLocated" ></A ></A ><B >cmpLocated</B > :: <A HREF="../base-4.2.0.2/Data-Ord.html#t%3AOrd" >Ord</A > a => <A HREF="SrcLoc.html#t%3ALocated" >Located</A > a -> <A HREF="SrcLoc.html#t%3ALocated" >Located</A > a -> <A HREF="../base-4.2.0.2/Data-Ord.html#t%3AOrdering" >Ordering</A ></TD ></TR ><TR ><TD CLASS="doc" >Tests the ordering of the two located things </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:combineLocs" ><A NAME="v%3AcombineLocs" ></A ></A ><B >combineLocs</B > :: <A HREF="SrcLoc.html#t%3ALocated" >Located</A > a -> <A HREF="SrcLoc.html#t%3ALocated" >Located</A > b -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:addCLoc" ><A NAME="v%3AaddCLoc" ></A ></A ><B >addCLoc</B > :: <A HREF="SrcLoc.html#t%3ALocated" >Located</A > a -> <A HREF="SrcLoc.html#t%3ALocated" >Located</A > b -> c -> <A HREF="SrcLoc.html#t%3ALocated" >Located</A > c</TD ></TR ><TR ><TD CLASS="doc" >Combine locations from two <TT ><A HREF="SrcLoc.html#t%3ALocated" >Located</A ></TT > things and add them to a third thing </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:leftmost_smallest" ><A NAME="v%3Aleftmost_smallest" ></A ></A ><B >leftmost_smallest</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Ord.html#t%3AOrdering" >Ordering</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:leftmost_largest" ><A NAME="v%3Aleftmost_largest" ></A ></A ><B >leftmost_largest</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Ord.html#t%3AOrdering" >Ordering</A ></TD ></TR ><TR ><TD CLASS="doc" >Alternative strategies for ordering <TT ><A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TT >s </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:rightmost" ><A NAME="v%3Arightmost" ></A ></A ><B >rightmost</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="../base-4.2.0.2/Data-Ord.html#t%3AOrdering" >Ordering</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:spans" ><A NAME="v%3Aspans" ></A ></A ><B >spans</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> (<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A >, <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A >) -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="doc" >Determines whether a span encloses a given line and column index </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:isSubspanOf" ><A NAME="v%3AisSubspanOf" ></A ></A ><B >isSubspanOf</B ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ><TD CLASS="rdoc" >The span that may be enclosed by the other </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ><TD CLASS="rdoc" >The span it may be enclosed by </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" >Determines whether a span is enclosed by another one </TD ></TR ></TABLE ></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 >