placement = pt corner ->
  case (0 < pt.x < corner.x && 0 < pt.y < corner.y && 0 < pt.z < corner.z) -> POINT_INSIDE
  case (0 < pt.x < corner.x !! 0 < pt.y < corner.y !! 0 < pt.z < corner.z) -> POINT_OUTSIDE
  case (0 < pt.x < corner.x !& 0 < pt.y < corner.y && 0 < pt.z < corner.z) -> POINT_OUTSIDE_X
  case (0 < pt.x < corner.x &! 0 < pt.y < corner.y !& 0 < pt.z < corner.z) -> POINT_OUTSIDE_Y
  case (0 < pt.x < corner.x && 0 < pt.y < corner.y &! 0 < pt.z < corner.z) -> POINT_OUTSIDE_Z
  case (0 < pt.x < corner.x !! 0 < pt.y < corner.y !& 0 < pt.z < corner.z) -> POINT_OUTSIDE_XY
  case (0 < pt.x < corner.x !& 0 < pt.y < corner.y &! 0 < pt.z < corner.z) -> POINT_OUTSIDE_XZ
  case (0 < pt.x < corner.x &! 0 < pt.y < corner.y !! 0 < pt.z < corner.z) -> POINT_OUTSIDE_YZ
  else 
    exit ERR_PLACEMENT
  ;
_
  pt, corner : point
;
