The resulting key will be as unique and reproducible as calling
JSON.stringify or util.inspect on the object, but is much faster.
In order to achieve this speed, some differences are glossed over.
For example, the object {0:'foo'} will be treated identically to the
array ['foo'].

Also, just as there is no way to summon the soul from the scribblings
of a cocain-addled psychoanalyst, there is no way to revive the object
from the signature string that sigmund gives you. In fact, it's
barely even readable.

As with sys.inspect and JSON.stringify, larger objects will
produce larger signature strings.

Because sigmund is a bit less strict than the more thorough
alternatives, the strings will be shorter, and also there is a
slightly higher chance for collisions. For example, these objects
have the same signature: