class_docstr: Generate code for a fused-type special function that can be
  cimported in Cython.
docstr: Set all variables to nan for specializations of fused types for
  which don't have signatures.
docstr_tok: ["Set","all","variables","to","nan","for","specializations","of","fused","types","for","which","do","n't","have","signatures","."]
code: def _get_nan_decs(self):
      """Set all variables to nan for specializations of fused types for
      which don't have signatures.
  
      """
      # Set non fused-type variables to nan
      tab = " " * 4
      fused_types, lines = [], [tab + "else:"]
      seen = set()
      for outvar, outtype, code in zip(
          self.outvars, self.outtypes, self.outcodes
      ):
          if len(code) == 1:
              line = f"{outvar}[0] = {NAN_VALUE[code]}"
              lines.append(2 * tab + line)
          else:
              fused_type = outtype
              name, _ = fused_type
              if name not in seen:
                  fused_types.append(fused_type)
                  seen.add(name)
      if not fused_types:
          return lines
  
      # Set fused-type variables to nan
      all_codes = tuple([codes for _unused, codes in fused_types])
  
      codelens = [len(x) for x in all_codes]
      last = numpy.prod(codelens) - 1
      for m, codes in enumerate(itertools.product(*all_codes)):
          fused_codes, decs = [], []
          for n, fused_type in enumerate(fused_types):
              code = codes[n]
              fused_codes.append(underscore(CY_TYPES[code]))
              for nn, outvar in enumerate(self.outvars):
                  if self.outtypes[nn] == fused_type:
                      line = f"{outvar}[0] = {NAN_VALUE[code]}"
                      decs.append(line)
          if m == 0:
              adverb = "if"
          elif m == last:
              adverb = "else"
          else:
              adverb = "elif"
          cond = self._get_conditional(fused_types, codes, adverb)
          lines.append(2 * tab + cond)
          lines.extend([3 * tab + x for x in decs])
      return lines
  
imports: import itertools
  import json
  import os
  from stat import ST_MTIME
  import argparse
  import re
  import textwrap
  import numpy
label_desc: Use image node_id 8 for calling the FusedFunc obj's underlying member method code with example usage: obj._get_nan_decs() and returns: lines, lines