code: func (e *G1) Marshal() []byte {
  	// Each value is a 256-bit number.
  	const numBytes = 256 / 8
  
  	if e.p.IsInfinity() {
  		return make([]byte, numBytes*2)
  	}
  
  	e.p.MakeAffine(nil)
  
  	xBytes := new(big.Int).Mod(e.p.x, P).Bytes()
  	yBytes := new(big.Int).Mod(e.p.y, P).Bytes()
  
  	ret := make([]byte, numBytes*2)
  	copy(ret[1*numBytes-len(xBytes):], xBytes)
  	copy(ret[2*numBytes-len(yBytes):], yBytes)
  
  	return ret
  }
docs: // Marshal converts n to a byte slice.