Ordering a sequence of objects by type
You could define a sorted list of the types and use that to sort the input. Here's what a function that does that would look like.

let sortArticles : seq&lt;obj&gt; -&gt; seq&lt;obj&gt; =
    let sorted =
        [
            typeof&lt;ArticleSubmission&gt;
            typeof&lt;seq&lt;Photos&gt;&gt;
            typeof&lt;ArticleReviewRating&gt;
            typeof&lt;BusinessReviewRating&gt;
            typeof&lt;seq&lt;ArticleTags&gt;&gt;
        ]
    Seq.sortBy (fun o -&gt; sorted |&gt; List.findIndex ((=) (o.GetType())))