def METHOD_NAME(self, constructor: PuzzleInfo, solution: Program) -> Optional[Program]:
    my_inner_solution: Program = solution.first()
    also = constructor.also()
    if also:
        deep_inner_solution: Optional[Program] = self._get_inner_solution(also, my_inner_solution)
        return deep_inner_solution
    else:
        return my_inner_solution