anchor.diff:  
   rule field_stream_method_signal_decl:
                                                   {{ signal = false; pure = 1; fargs = []; daux = () }}
  -        [ 'signal'                              {{ signal = true; coll = 'void' }}
  +        [ 'signal'                              {{ signal = true; coll = 'void'; ANOTSIG (signal) }}
             ]
           ( 'void'                                {{ dtname = 'void' }}
           | typename                              {{ dtname = typename }}
  
positive.code:   raise TypeError ('no such interface type: %s' % identifier)
  def ATN (typename):     # assert a typename
    yy.resolve_type (typename) # raises exception
  def ANOSIG (issignal, identifier): # assert non-signal decl
    if issignal:
      raise TypeError ('non-method invalidly declared as \'signal\': %s' % identifier)
  def TSTREAM (typename):
  
negative.code:               [ method_args                     {{ fargs = method_args }}
                ] '\)'                            # [ '=' auxinit {{ daux = auxinit }} ]
          ) [ '=' 'concrete'                      {{ pure = 0; ANP (kind == 'func', dident) }}
            ] ';'                                 {{ if kind == 'field': AFIELDSIG (signal, dident) }}
                                                  {{ if kind == 'field' and TSTREAM (dtname): kind = 'stream' }}
                                                  {{ flags = { 'void' : kind in ('func', 'signal'), 'stream' : kind == 'stream' } }}
                                                  {{ dtype = yy.link_type (dtname, dident, **flags) }}
  