// Generated by CoffeeScript 1.9.3
var Height, _Length,
  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
  hasProp = {}.hasOwnProperty;

_Length = require('./_Length');

module.exports = Height = (function(superClass) {
  extend(Height, superClass);

  function Height() {
    return Height.__super__.constructor.apply(this, arguments);
  }

  return Height;

})(_Length);
