/* Integers */ [pointer_default(ref)] interface Basics { int f1([in] int x); unsigned long f2([in] long x); void f3([out] int * p); void f4([in,out] int * p); int f5([in] int x, [out] int * p); /* Pointers */ [unique] int * f6([in, unique] int * x); [ptr] int * f7([in, ptr] int * x); void f8([in, out] int * p, [in, out] long * q); /* Many arguments */ int f9(int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8); /* Boxed ints */ [nativeint] int f10([int64] long x); [int64] long f11([int32] int x); [int32] unsigned int f12([nativeint] unsigned long x); /* Default ints */ [int_default(int32), long_default(int64)] interface Basics_Integers { int f13(int x); long f14(long x); } int f15(int x); /* Const madness */ void f16([string] const char * p); [string] const char * f17(); /* 64-bit integers */ hyper int f18(unsigned __int64 x, long long y); }