code: def thaw(o, strict=True):
      """
      Recursively convert pyrsistent containers into simple Python containers.
  
      - pvector is converted to list, recursively
      - pmap is converted to dict, recursively on values (but not keys)
      - pset is converted to set, but not recursively
      - tuple is converted to tuple, recursively.
  
      If strict == True (the default):
  
      - thaw is called on elements of lists
      - thaw is called on values in dicts
  
      >>> from pyrsistent import s, m, v
      >>> thaw(s(1, 2))
      {1, 2}
      >>> thaw(v(1, m(a=3)))
      [1, {'a': 3}]
      >>> thaw((1, v()))
      (1, [])
      """
      typ = type(o)
      if isinstance(o, PVector) or (strict and typ is list):
          curried_thaw = lambda x: thaw(x, strict)
          return list(map(curried_thaw, o))
      if isinstance(o, PMap) or (strict and typ is dict):
          return {k: thaw(v, strict) for k, v in o.items()}
      if typ is tuple:
          curried_thaw = lambda x: thaw(x, strict)
          return tuple(map(curried_thaw, o))
      if isinstance(o, PSet):
          # impossible to thaw inside psets or sets
          return set(o)
      return o
  
imports: import collections
  from functools import wraps
  from pyrsistent._pmap import PMap, pmap
  from pyrsistent._pset import PSet, pset
  from pyrsistent._pvector import PVector, pvector
label_desc: Use image node_id 2 for calling a global function with example usage: thaw(o, strict) and returns: o, list, unknown, tuple, set