exchange
exchange implements anisotropic data sharing (namely, the field information looks different depending on the direction from which you are observing it).
Namely, starting from an initial value, it computes a Field of Shared values containing the local value and the values of all neighbors.
It computes a body function based on such Field, and expects another Field as a result.
The resulting Field is then used to send custom messages to known neighbors, with their Field value used as message content.
Results are Aggregate.evolved across rounds, namely, this function also stores the local value of the field as state, and later invocations in successive rounds will not start from the provided initial value, rather, from the previously computed local field value.