Portability checks and identity helpers for stack entry values.
Stack definitions must be immutable data: no PIDs, ports, references or functions at any depth. These helpers enforce that constraint and derive deterministic digests and entry identifiers from portable values.
Summary
Functions
Hashes value into a deterministic lowercase hex digest.
Returns value unchanged, raising ArgumentError when it is not portable.
Extracts the identifier of a stack entry: its :id field when present,
otherwise the entry itself.
Returns true when value contains no PID, port, reference, function or
improper list at any depth.
Returns true when id is a portable atom, binary, integer or tuple.
Functions
Hashes value into a deterministic lowercase hex digest.
The same value always produces the same digest, so digests can detect stack definition changes across restarts.
Returns value unchanged, raising ArgumentError when it is not portable.
label names the offending value in the error message.
Extracts the identifier of a stack entry: its :id field when present,
otherwise the entry itself.
Returns true when value contains no PID, port, reference, function or
improper list at any depth.
Returns true when id is a portable atom, binary, integer or tuple.