docs: def from_bytes(cls, bitstream, prefix_len=None):
          '''
          Look at the type of the message, instantiate the correct class and
          let it parse the message.
          '''
          # Convert to ConstBitStream (if not already provided)
          if not isinstance(bitstream, ConstBitStream):
              if isinstance(bitstream, Bits):
                  bitstream = ConstBitStream(auto=bitstream)
              else:
                  bitstream = ConstBitStream(bytes=bitstream)
  
          # Skip the reserved bits
          rsvd1 = bitstream.read(8)
  
          # Read the flags (and ignore them, no flags are defined yet)
          flags = bitstream.readlist('8*bool')
  
          # Read the type
          type_nr = bitstream.read('uint:8')
  
          # Skip the reserved bits
          rsvd2 = bitstream.read(8)
  
          # Read the length
          length = bitstream.read('uint:16')
  
          # Read the data
          data = bitstream.read(length * 8)
  
          # Look for the right class
          from pylisp.utils.lcaf import type_registry
          type_class = type_registry.get_type_class(type_nr)
          if not type_class:
              raise ValueError("Can't handle LCAF type {0}".format(type_nr))
  
          # Let the specific class handle it from now on
          return type_class._from_data_bytes(data, prefix_len,
                                             rsvd1, flags, rsvd2)