-- | Execute the computation represented by a Positions monad.
runPositions :: Positions a
             -- ^ The Positions monad to execute.
             -> (Point, Point)
             -- ^ The low and high range of the symbols.
             -> [(Point, PointInfo)]
             -- ^ The mapping of symbols.  The mapping to the lowest
             -- index is taken as the null symbol.
             -> (Filename, Filename)
             -- ^ The low and high range of the symbols.
             -> [(Filename, FileInfo)]
             -- ^ The mapping of symbols.  The mapping to the lowest
             -- index is taken as the null symbol.
             -> IO a
runPositions = runPositionsT
runPositions :: Positions a
             -- ^ The Positions monad to execute.
             -> (Point, Point)
             -- ^ The low and high range of the symbols.
             -> [(Point, PointInfo)]
             -- ^ The mapping of symbols.  The mapping to the lowest
             -- index is taken as the null symbol.
             -> (Filename, Filename)
             -- ^ The low and high range of the symbols.
             -> [(Filename, FileInfo)]
             -- ^ The mapping of symbols.  The mapping to the lowest
             -- index is taken as the null symbol.
             -> IO a
runPositions = runPositionsT
runPositions = runPositionsT