Patrón activo roto en F # 3.0

Este patrón activo se compila con F # 2.0:

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

pero, en F # 3.0, emite el error:

Patrón activo '| Valor | _ |' tiene un tipo de resultado que contiene variables de tipo que no están determinadas por la entrada. La causa común es un [sic] cuando no se menciona un caso de resultado, por ejemplo. 'let (| A | B |) (x: int) = A x'. Esto se puede arreglar con una restricción de tipo, por ejemplo, 'let (| A | B |) (x: int): Elección = A x'

Lo intenté:

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

y:

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

¿Cómo se puede arreglar?

Entornos: Visual Studio 2012 (RTM) y FSI v11.0.50727.1

EDITAR: Aquí hay una repro más simple:

let (|X|) x = unbox x

Respuestas a la pregunta(4)

Su respuesta a la pregunta