define(Inline,
EXTERN inline $2 $1($3 $4)
{
	return ($2) ($5);
}
)
define(Inline0,
EXTERN inline $2 $1()
{
	return ($2) ($3);
}
)
define(Inline2,
EXTERN inline $2 $1($3 $4,$5 $6)
{
	return ($2) ($7);
}
)
define(AbsType,typedef struct _$1 { } *$1)
define(Constructor,
EXTERN inline $1 $2$1($3 $4)
{
	return ($1) ($5);
}
)

define(Destructor,
EXTERN inline $3 $2$1($1 $4)
{
	return ($3) ($5);
}
)