class_docstr: Useful base class for L{Linker}s which keep all nodes in the graph, and run
  a thunk associated with each node.
class_docstr_tok: ["Useful","base","class","for","L","{","Linker","}","s","which","keep","all","nodes","in","the","graph",",","and","run","a","thunk","associated","with","each","node","."]
docstr: This function should return a tuple of 5 things
      1. function to run the program
      2. input storage
      3. output storage
      4. thunks: list of nodes' functions in the order they will be run by the function in (1)
      5. order: list of nodes, in the order they will be run by the function in (1)
docstr_tok: ["This","function","should","return","a","tuple","of","5","things","1.","function","to","run","the","program","2.","input","storage","3.","output","storage","4.","thunks",":","list","of","nodes","'","functions","in","the","order","they","will","be","run","by","the","function","in","(","1",")","5.","order",":","list","of","nodes",",","in","the","order","they","will","be","run","by","the","function","in","(","1",")"]
code: def make_all(
      self,
      input_storage: Optional["InputStorageType"] = None,
      output_storage: Optional["OutputStorageType"] = None,
      storage_map: Optional["StorageMapType"] = None,
  ) -> tuple[
      "BasicThunkType",
      "InputStorageType",
      "OutputStorageType",
      list[ThunkAndContainersType],
      list[Apply],
  ]:
      """
      This function should return a tuple of 5 things
          1. function to run the program
          2. input storage
          3. output storage
          4. thunks: list of nodes' functions in the order they will be run by the function in (1)
          5. order: list of nodes, in the order they will be run by the function in (1)
      """
      raise NotImplementedError(
          f"make_all method of {type(self)} is not implemented."
      )
  
imports: from abc import ABC, abstractmethod
  from collections.abc import Sequence
  from copy import copy, deepcopy
  from typing import TYPE_CHECKING, Any, Callable, Optional, Union
  from pytensor.configdefaults import config
  from pytensor.graph.basic import Apply, Variable
  from pytensor.graph.fg import FunctionGraph
  from pytensor.graph.type import Type
  from pytensor.link.utils import gc_helper, map_storage, raise_with_op, streamline
  from pytensor.utils import difference
label_desc: Use image node_id 2 for calling the LocalLinker obj's underlying member method code with example usage: obj.make_all(input_storage, output_storage, storage_map) without return types