This is a sad case of input output. This will work:
let (|T|F|) b : Choice<unit,obj -> obj> =
let f (o:obj) : obj = null
if b then T else F(f)
, (o:obj), F # , o 'a, bool -> Choice<unit,'a -> obj>. 'a , F # . , - :
let (|T|F|) b =
if b then T else F []
, :
let (|T|F|) b : Choice<unit,int list> =
if b then T else F []