enum ShapeType { "circle", "square" };

[Constructor(ShapeType kind)]
interface Shape {
  static Shape triangle();

  [Pure]
    boolean isSquare();

  [Pure]
    boolean isCircle();

  [Pure]
    ShapeType getShape();
};