// Test demonstrating ownership transfer with aliases // The ownership transfer optimization ensures FBIP still works // even when variables are aliased, because ownership is transferred // rather than reference count being incremented. fn main(): Unit = { Console.print("=== Ownership Transfer Test ===") let a = List.range(1, 100) // Ownership transfers from 'a' to 'alias', keeping rc=1 let alias = a let len1 = List.length(alias) // Since ownership transferred, 'a' still has rc=1 // FBIP can still optimize map/filter/reverse let b = List.map(a, fn(x: Int): Int => x * 2) let c = List.filter(b, fn(x: Int): Bool => x > 50) let d = List.reverse(c) Console.print("Ownership transfer chain done") }