pub fn list(fuzzer: Option) -> Option> { inner(fuzzer, []) } fn inner(fuzzer, xs) -> Option> { when fuzzer is { None -> Some(xs) Some(x) -> Some([x, ..xs]) } } test foo() { list(None) == Some([]) }