class WorkingMemory:
    def __init__(self):
        self.memory_cells = {}
        self.current_focus = None

    def initialize_cell(self, cell_id, initial_value=None):
        """Initialize a new memory cell."""
        if cell_id not in self.memory_cells:
            self.memory_cells[cell_id] = initial_value
        else:
            raise ValueError(f"Memory cell {cell_id} already exists.")

    def set_value(self, cell_id, value):
        """Set the value of a specific memory cell."""
        if cell_id in self.memory_cells:
            self.memory_cells[cell_id] = value
        else:
            raise KeyError(f"No such memory cell: {cell_id}")

    def get_value(self, cell_id):
        """Retrieve the value from a specific memory cell."""
        return self.memory_cells.get(cell_id, None)

    def update_value(self, cell_id, operation, *args):
        """Update the value of a specific memory cell based on an operation and parameters."""
        current_value = self.get_value(cell_id)
        if current_value is not None:
            new_value = operation(current_value, *args)
            self.set_value(cell_id, new_value)

    def store_data(self, data_type, key, data):
        """Store general data in memory under a specific type and key."""
        if data_type not in self.memory_cells:
            self.memory_cells[data_type] = {}
        self.memory_cells[data_type][key] = data

    def retrieve_data(self, data_type, key):
        """Retrieve general data stored in memory under a specific type and key."""
        return self.memory_cells.get(data_type, {}).get(key, None)

    def focus_on_cell(self, cell_id):
        """Set the current focus to a specific memory cell for easy access."""
        self.current_focus = cell_id

    def operate_on_focus(self, operation, *args):
        """Operate on the currently focused memory cell using a specified function and parameters."""
        if self.current_focus is not None:
            return self.update_value(self.current_focus, operation, *args)
        else:
            raise ValueError("No cell in focus.")

# Example usage
wm = WorkingMemory()

# Initialize cells
wm.initialize_cell('cell1', 0.5)
wm.initialize_cell('cell2', 'Hello')

# Set values
wm.set_value('cell1', 1.5)

# Update value with a simple operation
wm.update_value('cell1', lambda x: x + 1, None)

# Store and retrieve data
wm.store_data('info', 'key1', {'a': [1, 2], 'b': (3, 4)})
print(wm.retrieve_data('info', 'key1'))

# Focus on a cell and operate on it
wm.focus_on_cell('cell2')
wm.operate_on_focus(lambda s: s + ' World!', None)