PostgreSQL CREATE TYPE using multiple relations?
The old version with support is 9.4 today and i can achieve your case, and then in the recent version too. 

for example:

create table a ( i int, j int);
create table b ( k text, l text);
CREATE TYPE compfoo AS (f1 a, f2 b);
create table c (m compfoo );
insert into c values ( row(row(1,2),row('hello','world'))   );
select * from c;

result:
("(1,2)","(hello,world)")


you can check this test in 
https://dbfiddle.uk/?rdbms=postgres_9.4&amp;fiddle=4499c5d52e876979d81fb3f2537c2439

check your version