   #.........................................................................................................
   yield return
 
+#-----------------------------------------------------------------------------------------------------------
+@_walk_fail_events = ( me ) ->
+  for fail in me.fails
+    yield [ '.', 'warning', fail, ( copy me.meta ), ]
+    yield [ 'tex', '\\par\n', ]
+  yield return
+
 
 #===========================================================================================================
 # ENSURERS

  yield return

#-----------------------------------------------------------------------------------------------------------
@_walk_field_designations_from_hints = ( me, fieldhints ) ->
  ### TAINT this will have to be changed to allow for named fields ###
  count           = 0
  fieldhints_set  = new Set ( _.trim() for _ in fieldhints.split ',' )
  if fieldhints_set.has '*'
    keys    = Object.keys me.fieldcells
    count  += keys.length
    yield key for key in keys
  else
    seen_field_designations = new Set()
    for fieldhint from fieldhints_set

  #.........................................................................................................
  ### Finishing ###
  yield from @_walk_closing_events                      me
  yield from @_walk_fail_events                         me
  #.........................................................................................................
  # ### dump description for debugging ###
  # ### TAINT make dump configurable ###
