package test:resources; world resources { import imports: interface { resource y { constructor(a: s32); get-a: func() -> s32; set-a: func(a: s32); add: static func(y: y, a: s32) -> y; } } export exports: interface { resource x { constructor(a: s32); get-a: func() -> s32; set-a: func(a: s32); add: static func(x: x, a: s32) -> x; } resource z { constructor(a: s32); get-a: func() -> s32; num-dropped: static func() -> u32; } add: func(a: borrow, b: borrow) -> own; consume: func(x: x); resource kebab-case { constructor(a: u32); get-a: func() -> u32; take-owned: static func(k: own) -> u32; } test-imports: func() -> result<_, string>; } }