Customizable diff implementations for arrays (sequential) & objects (associative), with or without linear edit logs