code: def _gen_grow_safe(self, pset, min_, max_, type_=None):
          
  
          def condition(height, depth, type_):
              """Stop when the depth is equal to height or when a node should be a terminal."""
              return type_ not in self.ret_types or depth == height
  
          return self._generate(pset, min_, max_, condition, type_)
docs: Generate an expression where each leaf might have a different depth between min_ and max_.
  
          Parameters
          ----------
          pset: PrimitiveSetTyped
              Primitive set from which primitives are selected.
          min_: int
              Minimum height of the produced trees.
          max_: int
              Maximum Height of the produced trees.
          type_: class
              The type that should return the tree when called, when
                    :obj:None (default) the type of :pset: (pset.ret)
                    is assumed.
          Returns
          -------
          individual: list
              A grown tree with leaves at possibly different depths.