Keep polarization of polarization vector symbolic but restrict it to transverse case:
 
      PolVec[P, pol] is not treated as massless spinor since 
pol can represent any polarization including 0:
 
      Some automatic simplifications are not performed e.g. such spinor chain stays nonzero:
 
      Declare 
pol symbol to be treated as plus or minus one:
 
      After setting 
pol to represent plus or minus one 
Mathematica knows that  
PolVec[P, pol] represents massless spinor:
 
      Package can use automatic simplifications:
 
      Keep mass sign of massive spinor label symbolic:
 
      SpM[P, x] is not treated as proper massive spinor label since 
x is not interpreted as 
+1 or 
-1:
 
      Declare 
x symbol to be treated as plus or minus one:
 
      After setting 
x to represent plus or minus one 
Mathematica knows that 
SpM[P, x] represents massive spinor label: