packages feed

gdiff-th-0.1.0.0: examples/CompareVersions.hs

{-# LANGUAGE TemplateHaskell, QuasiQuotes, TypeSynonymInstances, FlexibleContexts,
 GADTs, ExistentialQuantification, MultiParamTypeClasses, FlexibleInstances #-}
module Main where
import Language.Haskell.Exts (parseFile, Module, ParseResult(..), fromParseResult)
import Data.Generic.Diff.TH
import Data.Generic.Diff 
import Control.Applicative
import Utils

makeGDiff ''Module

diffModule :: (Type ModuleFamily Module) 
        => Module -> Module -> EditScript ModuleFamily Module Module
diffModule = diff

main = do 
    old <- fromParseResult <$> parseFile "examples/Old.hs"
    new <- fromParseResult <$> parseFile "examples/New.hs"
    showCompressed $ diffModule old new