code: function reportIncorrectPlucking( ast, session ) {
  
      session.buildVisitor( {
  
          action( node ) {
  
              this.visit( node.expression, true );
  
          },
  
          labeled( node, action ) {
  
              if ( node.pick !== true ) return void 0;
  
              if ( action === true )
  
                  session.error( `"@" cannot be used with an action block.`, node.location );
  
              if ( isSemanticPredicate( node ) )
  
                  session.error( `"@" cannot be used on a semantic predicate.`, node.location );
  
              this.visit( node.expression );
  
          },
  
      } )( ast );
  
  }
docs: Compiler pass to ensure the following are enforced:  - plucking can not be done with an action block - cannot pluck a semantic predicate