let install_forward_rule e = eval(Install_table (Routing_rule
(DestinAddress("192.168.1.2"),
Interface("E2"),
Action(Forward))))

In eval function i need something like this: [e.DestinAddress]

let eval e =
match e with
| Install_table e -> e.DestinAddress
+ something else

Is there any ways to do so?

DiamonDinoia

The problem is that you should return the same type in all the branches of the match-case.