code: def vspace(value):
      try:
          return VSpace.mappings[type(value)](value)
      except KeyError:
          if isbox(value):
              return vspace(getval(value))
          else:
              raise TypeError(
                  "Can't find vector space for value {} of type {}. "
                  "Valid types are {}".format(
                      value, type(value), VSpace.mappings.keys()
                  )
              )
  
imports: from itertools import count
  from functools import reduce
  from .tracer import trace, primitive, toposort, Node, Box, isbox, getval
  from .util import func, subval
  import warnings
label_desc: Use image node_id 16 for calling a global function with example usage: vspace(value) and returns: VSpace, vspace