type 'a box = B of 'a
class H 'a { h : 'a -> int }
instance ['a] H 'a box { h = (fun (x : 'a box) -> 0) }
let
['b] (f : 'b box -> int) =
  ['b]
  fun (x_1 : 'b box) ->
    let (z : int) = h['b box] x_1[] in
      let (y : 'b) = match x_1[] with B['b](y_1) -> y_1[] in z[]