module Language.Haskell.Formatter.ExactCode
(ExactCode, actualCode, comments, create) where
import qualified Language.Haskell.Formatter.Location as Location
import qualified Language.Haskell.Formatter.Source as Source
data ExactCode = ExactCode{actualCode :: Source.Module Location.SrcSpanInfo,
comments :: [Source.Comment]}
instance Show ExactCode where
show exact = Source.exactPrint rawActualCode rawComments
where rawActualCode = actualCode exact
rawComments = comments exact
instance Location.Portioned ExactCode where
getPortion = Location.getPortion . actualCode
create :: Source.Module Location.SrcSpanInfo -> [Source.Comment] -> ExactCode
create rawActualCode rawComments
= ExactCode{actualCode = rawActualCode, comments = rawComments}