{-# LANGUAGE OverloadedStrings #-} import qualified Data.ByteString.Lazy as L import Data.XDelta import Text.XXD source :: L.ByteString source = "It could be said that Joe was here. I don't know what to do about it." patched :: L.ByteString patched = "It could be said that Joe, the magnificent, was here. I don't know what to do about it." delta :: XDeltaFailable XDelta delta = computeDiff defaultConfig source patched main = do mapM_ putStrLn $ xxd2 0 (L.toStrict source) putStrLn "" mapM_ putStrLn $ xxd2 0 (L.toStrict patched) putStrLn "" case delta of XSuccess (XDelta d) -> mapM_ putStrLn $ xxd2 0 (L.toChunks d !! 0) _ -> print delta