# Namespaces¶

Namespaces provide a way to encapsulate and group multiple similar types together. They also allow for multiple types in different namespaces to be named the same without interfering with each other.

namespace abc {

struct Type {
u32 x;
};

}

abc::Type type1 @ 0x100;

using Type = abc::Type;
Type type2 @ 0x200;


To access a type within a namespace, the scope resolution operator :: is used. In the example above, to access the type Type inside the namespace abc, abc::Type is used.