code: def analyze_caches(
      inputs: list[parser.InputEffect],
  ) -> list[CacheEntry]:
      caches: list[parser.CacheEffect] = [
          i for i in inputs if isinstance(i, parser.CacheEffect)
      ]
      for cache in caches:
          if cache.name == "unused":
              raise analysis_error(
                  "Unused cache entry in op. Move to enclosing macro.",
                  cache.tokens[0],
              )
      return [CacheEntry(i.name, int(i.size)) for i in caches]
  
imports: from dataclasses import dataclass, field
  import lexer
  import parser
  from typing import Optional
label_desc: Use image node_id 5 for calling a global function with example usage: analyze_caches(inputs) and returns: unknown