constant f : (func(1, [(Foo int); int])) bind 1 pig : {v : (Foo a) | true } bind 2 dog : {v : int | v = f (coerce (Foo a ~ Foo int) pig) } constraint: env [1;2] lhs {v : int | v = 10 } rhs {v : int | v = 5 + 5} id 1 tag []