In C#, I can define an extension method for a generic array of type T like this:

public static T GetOrDefault<T>(this T[] arr, int n)
{
    if (arr.Length > n)
    {
        return arr[n];
    }

    return default(T);
}

but for the life of me I can't figure out how to do the same in F#! I tried type 'a array with, type array<'a> with and type 'a[] with and the compiler wasn't happy with any of them.

Can anyone tell me what's the right to do this in F#?

Sure, I can do this by overshadowing the Array module and add a function for that easily enough, but I really want to know how to do it as an extension method!

Edit
Report