code: func readFunctionType(t Type, word []byte) (funcTy [24]byte, err error) {
  	if t.T != FunctionTy {
  		return [24]byte{}, fmt.Errorf("abi: invalid type in call to make function type byte array")
  	}
  	if garbage := binary.BigEndian.Uint64(word[24:32]); garbage != 0 {
  		err = fmt.Errorf("abi: got improperly encoded function type, got %v", word)
  	} else {
  		copy(funcTy[:], word[0:24])
  	}
  	return
  }
docs: // A function type is simply the address with the function selection signature at the end.
  // This enforces that standard by always presenting it as a 24-array (address + sig = 24 bytes)