-- ../m2/methods.m2:446
addHook (HashTable,Thing,Function) := (obj,key,hook) -> (c := obj.cache; if c#?key then c#key = prepend(hook,c#key) else c#key = {hook})
-- ../m2/methods.m2:442
addHook (MutableHashTable,Thing,Function) := (obj,key,hook) -> if obj#?key then obj#key = prepend(hook,obj#key) else obj#key = {hook}