/*
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

using namespace std;

namespace foo {
typedef struct {
  int a;
  int b;
} my_record;
int value() { return 5; }

class Rectangle {
  int width, height;

 public:
  void set_values(int, int);
  int area(void);
};
} // namespace foo

namespace bar {
const double pi = 3.1416;
double value() { return 2 * pi; }

class Rectangle {
  int width, height;

 public:
  void set_values(int, int);
  int area(void);
} rect;
} // namespace bar

int main() {

  int i;
  double j;

  foo::my_record x;

  bar::Rectangle rect1;
  rect1.set_values(3, 4);

  foo::Rectangle rect2;
  rect2.set_values(7, 10);

  x.a = 10;
  i = foo::value();
  i = bar::value();
  j = bar::pi;
  return 0;
}