#ifndef CID_HPP
#define CID_HPP

namespace adopted {

class cid {
public:
  bool operator==(const cid& other) const { return val_ == other.val_; }
  bool operator!=(const cid& other) const { return val_ != other.val_; }
  cid operator -() const { return cid(-val_); }

  static const cid self; // Transform self 
  static const cid none; // Unspecified
  static const cid other; // Transform other
private:
  typedef int cid_type;
  explicit cid(cid_type val): val_(val) {}
  cid_type val_;
};

} // namespace adopted

#endif // CID_HPP

/* vim:set et sw=2 ts=2: */

