I have a standard type that I use to pass messages and objects between functions that has an optional MessageObject that is System.Object.

```
type StatusMessage = {
    Message: string
    MessageObject: Object option
    Success: bool
}

```

In the following specific function - I know that the Message Object will always contain the following specific type and I want to be able to access that within the function

```
type SingleCorrectRecord = {
    CardTransactionWithOrder: CardWithOrder
    Line: RowTransaction
    ExchangeVariance: decimal
}

```

My function is:

```
let getEstimatedVariance(matchedTransactions: StatusMessage list): decimal = 
    let exchangeVariance:decimal = 
        matchedTransactions |> Seq.sumBy(fun mt -> mt.MessageObject.ExchangeVariance)
    estimatedVariance

```

Obviously mt.MessageObject doesn't contain the property "ExchangeVariance" but I need to be able to cast (or unbox?) the object so that it knows that it is a SingleCorrectRecord type and I can access the properties.

Any help is appreciated.