code: def make_uop(
      name: str, op: parser.InstDef, inputs: list[parser.InputEffect]
  ) -> Uop:
      return Uop(
          name=name,
          context=op.context,
          annotations=op.annotations,
          stack=analyze_stack(op),
          caches=analyze_caches(inputs),
          body=op.block.tokens,
          properties=compute_properties(op),
      )
  
imports: from dataclasses import dataclass, field
  import lexer
  import parser
  from typing import Optional
label_desc: Use image node_id 13 for calling a global function with example usage: make_uop(name, op, inputs) and returns: Uop