Change Hints
Gen defines a system of change hints, or Diff
types, in order to pass information to and from generative functions about whether their arguments and return values have changed (and how).
Gen.Diff
— TypeDiff
Abstract supertype for information about a change to a value.
Change hints are used to support incremental computation in generative function combinators and the static modeling language. The most important change hints are NoChange
and UnknownChange
, which respectively indicate that a value has not changed and that a value may have changed in an unknown way.
Gen.NoChange
— TypeNoChange
Singleton to indicate the value did not change.
Gen.UnknownChange
— TypeUnknownChange
Singleton to indicate the change to the value is unknown or unprovided.
A number of other change hints are also implemented in Gen, such as IntDiff
, VectorDiff
, and SetDiff
and DictDiff
, which support incremental computation for certain operations when applied to Diffed
values. These change hints are not documented, and are currently considered an implementation detail.
Gen.Diffed
— TypeDiffed{V,DV <: Diff}
Container for a value and information about a change to its value.