code: def signatures_to_string(func_name, signatures):
      # filter out transposed version, they are confusing for some users
      # and can generate very long docstring that break MSVC
      sigdocs = [
          spec_to_string(func_name, sig)
          for sig in signatures
          if not any(istransposed(t) for t in sig)
      ]
      if not sigdocs:
          sigdocs = [
              spec_to_string(func_name, sig) for sig in signatures
          ]
      return "".join("\n    - " + sigdoc for sigdoc in sigdocs)
  
imports: from pythran.types.conversion import pytype_to_pretty_type
  from collections import defaultdict
  from itertools import product
  import re
  import ply.lex
  import ply.yacc
  from pythran.typing import List, Set, Dict, NDArray, Tuple, Pointer, Fun
  from pythran.syntax import PythranSyntaxError
  from pythran.config import cfg
label_desc: Use image node_id 5 for calling a global function with example usage: signatures_to_string(func_name, signatures) and returns: str