code: def type_names_mn(prefix, sizerangem, sizerangen):
          
          lm = []
          ln = []
          namelist = []
  
          # construct lists out of ranges
          for i in sizerangem: lm.append(i)
          for i in sizerangen: ln.append(i)
  
          # sizes (in bits) are valid if (%8 == 0) and (m+n <= 256)
          # first condition is covered by passing proper sizerange{m,n}
          validpairs = [tuple([m,n]) for m in lm for n in ln if m+n<=256]
          for i in validpairs:
              namelist.append(prefix + str(i[0]) + 'x' + str(i[1]))
  
          return tuple(namelist)
docs: Helper for type name generation, like: fixed0x8 .. fixed0x256