úÎ"Úí#      !"P(c) Harvard University 2006-2011 (c) Geoffrey Mainland 2011-2014 BSD-style*Geoffrey Mainland <mainland@cs.drexel.edu> Safe-Inferred+A value of type L a is a value of type a with an associated  <, but this location is ignored when performing comparisons.Values that can be relocatedLocated values have a location. Locations xSource location type. Source location are all equal, which allows AST nodes to be compared modulo location information. FLocation type, consisting of a beginning position and an end position. Beginning and end positionsPosition type.5Source file name, line, column, and character offset.YLine numbering starts at 1, column offset starts at 1, and character offset starts at 0.Position file.Position line.Position column.Position character offset.!Starting position for given file..Position corresponding to given file and line.6Note that the associated character offset is set to 0.ÿ"Advance a position by a single character. Newlines increment the line number, tabs increase the position column following a tab stop width of 8, and all other characters increase the position column by one. All characters, including newlines and tabs, increase the character offset by 1. Note that  assumes UNIX-style newlines."Starting position of the location. Ending position of the location.Merge the locations of two  values.The   of a  value.A  ' with (minimal) span that includes two  values. No location.BFormat a position in a human-readable way, returning an ordinary #. *Format a position in a human-readable way.!BFormat a location in a human-readable way, returning an ordinary #."*Format a location in a human-readable way.8 $%& !"'()*+,-./012345678#  !"#  !"  .   $%& !"'()*+,-./0123456789        !"#$%&'()*+,-./0123456789 srcloc-0.5.0Data.LocL RelocatablerelocLocatedlocOf locOfList IsLocationfromLocfromPosSrcLocLocNoLocPosposFileposLineposColposCoffstartPoslinePos advancePoslocStartlocEnd<-->srclocOfsrcspannoLocunLoc displayPos displaySPos displayLoc displaySLocbaseGHC.BaseString startLinestartCol startCoff$fRelocatableL $fLocatedL$fShowL$fOrdL$fEqL$fLocatedSrcLoc $fLocatedLoc $fLocatedPos$fLocatedMaybe $fLocated[]$fIsLocationSrcLoc$fIsLocationLoc $fReadSrcLoc $fShowSrcLoc $fOrdSrcLoc $fEqSrcLoc $fMonoidLoc$fOrdPos