func Compare(first, second []byte, separator string) (Diff, error) {
	fd, err := Parse(first, separator)
	if err != nil {
		return nil, err
	}
	sd, err := Parse(second, separator)
	if err != nil {
		return nil, err
	}
	d := &diff{
		first:  fd,
		second: sd,
	}
	err = d.compare()
	if err != nil {
		return nil, err
	}
	return d, nil
}
Compare parses and compares the documents and returns their differences.
package gjp
import "github.com/tideland/golib/errors"
type Diff interface {
	FirstDocument() Document
	SecondDocument() Document
	Differences() []string
	DifferenceAt(path string) (Value, Value)
}
type diff struct {
	first  Document
	second Document
	paths  []string
}