DictsOut is a copy of DictsIn, where each dict 
contains all keys appearing in all dicts of DictsIn. Values 
for keys that are added to a dict are produced by calling OnEmpty 
as below. The predicate dict_fill/4 
provides an implementation that fills all new cells with a predefined 
value.
call(:OnEmpty, +Key, +Dict, -Value)