   designations, and later occurrences of a given field will replace earlier appearances. ###
   R = {}
   for [ fieldhints, stuff..., ] in fieldhints_and_stuff
-    for field_designation from @_walk_field_designations_from_hints me, fieldhints
-      R[ field_designation ] = stuff
+    for [ fail, field_designation, ] from @_walk_f_field_designations_from_hints me, fieldhints
+      if fail? then _record me, fail
+      else          R[ field_designation ]  = stuff
   yield [ field_designation, stuff..., ] for field_designation, stuff of R
   yield return
 

  #.........................................................................................................
  yield return


#===========================================================================================================
# ENSURERS

  unless value in [ 'top', 'bottom', 'center', 'spread', ]
    throw new Error "(MKTS/TABLE µ1876) expected one of 'top', 'bottom', 'center', 'spread' for mkts-table/fieldalignvertical, got #{rpr value}"
  #.........................................................................................................
  for [ fail, field_designation, ] from @_walk_f_field_designations_from_hints me, fieldhints
    ### TAINT ad-hoc fail message production, use method ###
    if fail? then _record me, "#{fail} (#{jr {field_designation}})"
    else          me.valigns[ field_designation ] = value
  #.........................................................................................................
  return null

