public T ReadDouble <T>()
 {
     return(PrimitiveConverter <T> .CheckAndInvokeFromDouble(ReadDouble()));
 }
 public T ReadFloat <T>()
 {
     return(PrimitiveConverter <T> .CheckAndInvokeFromFloat(ReadFloat()));
 }
 public T ReadLong <T>()
 {
     return(PrimitiveConverter <T> .CheckAndInvokeFromLong(ReadLong()));
 }
 public T ReadInteger <T>()
 {
     return(PrimitiveConverter <T> .CheckAndInvokeFromInteger(ReadInteger()));
 }
 public void PushDouble <T>(T val)
 {
     PushFloat(PrimitiveConverter <T> .CheckAndInvokeToFloat(val));
 }
 public void PushLong <T>(T val)
 {
     PushInteger(PrimitiveConverter <T> .CheckAndInvokeToLong(val));
 }