-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Extract and apply patches to JSON documents.
--
@package aeson-diff
@version 0.1.1.2
-- | This module implements data types and operations to represent the
-- differences between JSON documents (i.e. a patch), to compare JSON
-- documents and extract such a patch, and to apply such a patch to a
-- JSON document.
module Data.Aeson.Diff
-- | Describes the changes between two JSON documents.
data Patch
Patch :: [Operation] -> Patch
patchOperations :: Patch -> [Operation]
-- | A path through a JSON document is a possibly empty sequence of
-- Keys.
type Path = [Key]
-- | Traverse a single layer of a JSON document.
data Key
-- | Traverse a Value with an Object constructor.
OKey :: Text -> Key
-- | Traverse a Value with an Array constructor.
AKey :: Int -> Key
-- | An Operation describes an atomic change to a JSON document:
-- inserting or deleting a single Value at a specific point.
data Operation
-- | Insert a Value at a location.
Ins :: Path -> Value -> Operation
changePath :: Operation -> Path
changeValue :: Operation -> Value
-- | Delete the Value at a location.
Del :: Path -> Value -> Operation
changePath :: Operation -> Path
changeValue :: Operation -> Value
-- | Compare two JSON documents and generate a patch describing the
-- differences.
diff :: Value -> Value -> Patch
-- | Apply a patch to a JSON document.
patch :: Patch -> Value -> Value
-- | Apply an Operation to a Value.
applyOperation :: Operation -> Value -> Value
-- | Format a Patch for reading by humans.
--
-- For storing or exchanging Patches between systems using the
-- JSON encoding implemented by the FromJSON and ToJSON
-- instances.
formatPatch :: Patch -> Text
instance Eq Key
instance Ord Key
instance Show Key
instance Eq Operation
instance Show Operation
instance Eq Patch
instance FromJSON Key
instance ToJSON Key
instance FromJSON Operation
instance ToJSON Operation
instance FromJSON Patch
instance ToJSON Patch
instance Monoid Patch
instance Show Patch