I need to constrain API so that users can call it only with types that are explicitly optional. How can I make this happen?

```
class Foo<T> {

    let value: T?

    init(_ value: T?) {
        self.value = value
    }
}

let optionalValue: Bool? = true
Foo(optionalValue) // Should work

let nonOptionalValue: Bool = true
Foo(nonOptionalValue) // Should fail, ideally at compile time

Foo(true) // Should work or acceptable to replace it with 
Foo(.some(true))

```