F # - ¿Cómo extiendo un tipo con get_Zero para poder usar un tipo existente genéricamente?

Intento lo siguiente:

let c x = System.Numerics.Complex(x, 0.0)
let sum = [c 1.0; c 2.0] |> List.sum

Pero me sale este error:

The type 'System.Numerics.Complex' does not support the operator 'get_Zero'

Leí las reglas sobre extensiones de tipo, dehttps://msdn.microsoft.com/en-us/library/dd233211.aspxe intente hacer lo siguiente:

module ComplexExtension =
    let c x = System.Numerics.Complex(x, 0.0)

    type System.Numerics.Complex with
        // I also tried a bunch of other ways of writing these
        // as static or instance members, but nothing worked
        static member Zero = c 0.0
        static member One = c 1.0

open ComplexExtension

let sum = [c 1.0; c 2.0] |> List.sum

Todavía me sale ese error.

¿Es posible extender un tipo con el operador get_Zero? ¿O tengo que crear mi propio tipo de envoltura alrededorSystem.Numerics.Complex y anular todos los operadores si quiero que haga las otras cosas que hacen los números complejos?

Respuestas a la pregunta(2)

Su respuesta a la pregunta