Checks whether a value implements the iterable protocol.
Any value to test for iterable protocol support.
true when value is a non-null object with a callable Symbol.iterator (e.g. arrays, Map, Set); false for null, primitives, and plain objects.
Checks whether a value implements the iterable protocol, preserving the element type when the input is already typed as
Iterable<T>.