package my:resources; interface types { resource z { constructor(a: f64); } } world resources { use types.{z}; export add: func(a: borrow, b: borrow) -> own; export maybe-with-z: func(a: option>); variant includes-borrow { a, b(borrow), } export variant-with-z: func(a: includes-borrow); export maybe-variant-with-z: func(a: option); record big { x1: borrow, x2: borrow, x3: borrow, x4: borrow, x5: borrow, x6: borrow, x7: borrow, x8: borrow, x9: borrow, x10: borrow, } export big-record: func(r: big); export exports: interface { resource x { constructor(a: f64); get-a: func() -> f64; set-a: func(a: f64); add: static func(x: x, a: f64) -> x; } } import imports: interface { resource y { constructor(a: f64); get-a: func() -> f64; set-a: func(a: f64); add: static func(y: y, a: f64) -> y; } } }