package my:lift-lower-foreign; interface a { type t1 = u32; record t2 { a: t1 } flags t3 { a, b, c } type t4 = tuple; variant t5 { a, b(t2), c(t3) } enum t6 { a, b, c } type t7 = option; type t8 = result; type t10 = list; type t11 = t10; } interface the-interface { use a.{t1 as u1, t2 as u2, t3 as u3, t4 as u4, t5 as u5}; use a.{t6 as u6, t7 as u7, t8 as %u8}; use a.{t10 as u10, t11 as u11}; f1: func(a: u1) -> u1; f2: func(a: u2) -> u2; f3: func(a: u3) -> u3; f4: func(a: u4) -> u4; f5: func(a: u5) -> u5; f6: func(a: u6) -> u6; f7: func(a: u7) -> u7; f8: func(a: %u8) -> %u8; f10: func(a: u10) -> u10; f11: func(a: u11) -> u11; } world foo { use a.{t1 as u1, t2 as u2, t3 as u3, t4 as u4, t5 as u5}; use a.{t6 as u6, t7 as u7, t8 as %u8}; use a.{t10 as u10, t11 as u11}; export foo-f1: func(a: u1) -> u1; export foo-f2: func(a: u2) -> u2; export foo-f3: func(a: u3) -> u3; export foo-f4: func(a: u4) -> u4; export foo-f5: func(a: u5) -> u5; export foo-f6: func(a: u6) -> u6; export foo-f7: func(a: u7) -> u7; export foo-f8: func(a: %u8) -> %u8; export foo-f10: func(a: u10) -> u10; export foo-f11: func(a: u11) -> u11; import the-interface; export the-interface; }