Lineage
A value's lineage is a directed tree that describes how the value was
computed. A value node is annotated with its id or its
url. Functions in KGPL always generate a special value of type
Execution. This value contains a special field that identifies the
source-function that generated it, along with an optional log
message generated during execution.
Values with a url can always have their details looked up at a
KGPL sharing service. As a result, the lineage tree does not have to be
fully-materialized; nodes with a url field just can be referred to
and do not need to store further back history. This allows lineage
trees, which might be quite large, to be made more compact.
There is a single internet-wide KGPL service that will exist as soon as the language starts running.