code: func FromBytes(bs []byte) Literal {
  	// if len(bs) < 2 {
  	// 	return nil, errors.Errorf("byte slice too short: %x", bs)
  	// }
  	switch bs[0] {
  	case bID:
  		return B(bs[1] > 0)
  	case sID:
  		return S(string(bs[1:]))
  	case f32ID:
  		return F32(math.Float32frombits(binary.BigEndian.Uint32(bs[1:])))
  	case f64ID:
  		return F64(math.Float64frombits(binary.BigEndian.Uint64(bs[1:])))
  	case iID:
  		return I(binary.BigEndian.Uint64(bs[1:]))
  	case i8ID:
  		return I8(bs[1])
  	case i16ID:
  		return I16(binary.BigEndian.Uint16(bs[1:]))
  	case i32ID:
  		return I32(binary.BigEndian.Uint32(bs[1:]))
  	case i64ID:
  		return I64(binary.BigEndian.Uint64(bs[1:]))
  	case uID:
  		return U(binary.BigEndian.Uint64(bs[1:]))
  	case u8ID:
  		return U8(bs[1])
  	case u16ID:
  		return U16(binary.BigEndian.Uint16(bs[1:]))
  	case u32ID:
  		return U32(binary.BigEndian.Uint32(bs[1:]))
  	case u64ID:
  		return U64(binary.BigEndian.Uint64(bs[1:]))
  	default:
  		panic("should have covered all literal types in FromBytes switch")
  	}
  }
docs: // FromBytes converts an encoded byte slice (from ToBytes) back to a Literal.
  // DEV: May add an error and bounds checking.