let (|CSharpConstStub|_|) (fn:Method) =
    if fn.Name.ToString() @ "get_" then None
    else match MapToTypes fn.Body.Statements with
         | [NodeType.Block; NodeType.Block] ->           
            let block1 = fn.Body.Statements.[0] :?> Block
            let block2 = fn.Body.Statements.[1] :?> Block
            match (MapToTypes block1.Statements, MapToTypes block2.Statements) with
            | ( [NodeType.Nop; NodeType.AssignmentStatement; NodeType.Branch], [NodeType.Return]) ->
              let ass = block1.Statements.[1] :?> AssignmentStatement
              let branch = block1.Statements.[2] :?> Branch
              if branch.Target <> block2 || null <> branch.Condition then None
              elif ass.Source.NodeType <> NodeType.MemberBinding && ass.Source.NodeType <> NodeType.Literal then None
              else match (block2.Statements.[0], ass.Target) with
                   | ReturnTemp -> Some()
                   | _ -> None
            | _ -> None
         | _ -> None