Aktives Muster in F # 3.0 unterbrochen

Dieses aktive Muster kompiliert mit F # 2.0:

let (|Value|_|) value = // 'a -> 'T option
  match box value with
  | :? 'T as x -> Some x
  | _ -> None

In F # 3.0 wird jedoch der Fehler ausgegeben:

Aktives Muster '| Wert | _ |' hat einen Ergebnistyp, der Typvariablen enthält, die nicht von der Eingabe bestimmt werden. Die häufige Ursache ist eine, wenn ein Ergebnisfall nicht erwähnt wird, z. 'let (| A | B |) (x: int) = A x'. Dies kann mit einer Typeinschränkung behoben werden, z. 'let (| A | B |) (x: int): Choice = A x'

Ich habe es versucht:

let (|Value|_|) value : 'T option = ...

und:

let (|Value|_|) (value: 'U) = ...

Wie kann es behoben werden?

Umgebungen: Visual Studio 2012 (RTM) und FSI v11.0.50727.1

EDIT: Hier ist ein einfacher Repro:

let (|X|) x = unbox x

Antworten auf die Frage(4)

Ihre Antwort auf die Frage