A protocol that defines diff/2 for finding the difference between two terms.
Includes implementations for DateTime, NaiveDateTime, and BitString.
Returns the difference between a and b.
@type t() :: term()
@spec diff(any(), any()) :: any()
The fallback implementation uses Kernel.-/2 to subtract b from a.