Why is this acceptable:
type SomeClass<'T> =
    val mutable id : int
    val mutable result : 'T
But this is not:
type SomeIface = 
    abstract id : int
type SomeClass<'T> = 
    interface SomeIface with
        val mutable id : int
        val mutable result : 'T
The compiler complains about my use of 'val' telling me to use 'member' but then I can't use mutable.