create or replace package typetest as before type function myint4in (opaque) returns myint4 as 'int4in' language 'internal' before type function myint4out (opaque) returns opaque as 'int4out' language 'internal' type myint4 ( internallength = 4, input = myint4in, output = myint4out, passedbyvalue, externallength = 10) function myint4(int8) returns myint4 as 'int84' language 'internal' function myint4(int2) returns myint4 as 'i2toi4' language 'internal' function myint4(int4) returns myint4 as 'select myint4in(int4out($1))' language 'sql' function myint4(float4) returns myint4 as 'ftoi4' language 'internal' function myint4(float8) returns myint4 as 'dtoi4' language 'internal' function myint4(numeric) returns myint4 as 'numeric_int4' language 'internal' function myint42div(myint4, int2) returns myint4 as 'int42div' language 'internal' function myint42eq(myint4, int2) returns bool as 'int42eq' language 'internal' function myint4ne(myint4, myint4) returns bool as 'int4ne' language 'internal' function myint4pl(myint4, myint4) returns myint4 as 'int4pl' language 'internal' etc.