code: function() {
      	  // TODO(nico) should store Array.prototype.slice.call somewhere.
          var args = Array.prototype.slice.call(arguments);
          var s = args.shift(), len = args.length;
          var val = function(a) { return typeof a == 'function'? a() : a; };
          if(len == 2) {
              return (s == "top" || s == "bottom")? val(args[0]) : val(args[1]);
          } else if(len == 4) {
              switch(s) {
                  case "top": return val(args[0]);
                  case "right": return val(args[1]);
                  case "bottom": return val(args[2]);
                  case "left": return val(args[3]);
              }
          }
          return undefined;
      }
docs: /*
  Makes a value dispatch according to the current layout
  Works like a CSS property, either _top-right-bottom-left_ or _top|bottom - left|right_.