You need to annotate your function as accepting a flexible type.
type A() = class end
type B() = inherit A()
let aArr = [| A() |]
let bArr = [| B() |]
// put # before type to indicate it's a flexible type
let f (x : #A[]) = ()
f aArr
f bArr // works!