namespace TriangleSquareAsTriangleSquareCircle { declare const TriangleType ; class Triangle { [ TriangleType ] : void ; } declare const SquareType ; class Square { [ SquareType ] : void ; } declare const CircleType ; class Circle { [ CircleType ] : void ; } declare function makeShape ( ) ; declare function draw ( shape ) ; draw ( makeShape ( ) ) ; }