Resources can not be captured in closures, as that could potentially result in duplications.
resource R {}
// Invalid: Declare a function which returns a closure which refers to
// the resource parameter `resource`. Each call to the returned function
// would return the resource, which should not be possible.
//
fun makeCloner(resource: @R): ((): @R) {
return fun (): @R {
return <-resource
}
}
let test = makeCloner(resource: <-create R())