#ifndef __MACRO_H__
#define __MACRO_H__

// Implements origin `str()` macro. Extremely bad naming.
#include <rlib/macro.hpp>

#define concat_temp(x, y) x ## y
#define concat(x, y) concat_temp(x, y)
#define concat3(x, y, z) concat(concat(x, y), z)
#define concat4(x, y, z, w) concat3(concat(x, y), z, w)
#define concat5(x, y, z, v, w) concat4(concat(x, y), z, v, w)

#endif
