docs: def ls(serial=None):
      """
      List the files on the micro:bit.
  
      If no serial object is supplied, microfs will attempt to detect the
      connection itself.
  
      Returns a list of the files on the connected device or raises an IOError if
      there's a problem.
      """
      out, err = execute([
          'import os',
          'print(os.listdir())',
      ], serial)
      if err:
          raise IOError(clean_error(err))
      return ast.literal_eval(out.decode('utf-8'))