let topvar x s2 s3 =
  let max x y = if (x <<< y) then y else x in
  match d_bitwise s2, d_bitwise s3 with
    | Some(_,y,_,_), Some(_,z,_,_) -> max x (max y z)
    | Some(_,y,_,_), None -> max x y
    | NoneSome(_,z,_,_) -> max x z
    | NoneNone -> x