class_docstr: Layoutable provides a mix-in class to support the
  add operation for creating a layout from the operands.
class_docstr_tok: ["Layoutable","provides","a","mix-in","class","to","support","the","add","operation","for","creating","a","layout","from","the","operands","."]
docstr: Compose objects into a Layout
code: def __add__(x, y):
      "Compose objects into a Layout"
      if any(isinstance(arg, int) for arg in (x, y)):
          raise TypeError(
              f"unsupported operand type(s) for +: {x.__class__.__name__} and {y.__class__.__name__}. "
              "If you are trying to use a reduction like `sum(elements)` "
              "to combine a list of elements, we recommend you use "
              "`Layout(elements)` (and similarly `Overlay(elements)` for "
              "making an overlay from a list) instead."
          )
      try:
          return Layout([x, y])
      except NotImplementedError:
          return NotImplemented
  
imports: import numpy
  import param
  from .None import traversal
  from .dimension import Dimension, Dimensioned, ViewableElement, ViewableTree
  from .ndmapping import NdMapping, UniformNdMapping
label_desc: Use image node_id 1 for calling the Layoutable obj's underlying member method code with example usage: obj.__add__(x, y) and returns: Layout, NotImplemented