Frag19

type t
interpret t -> int

function f(X:t) : t

function foo(X:t) = f(X) = X
definition f(X) = X

function g(X:t) : t
var p : t

function h(X:t) : t
definition h(Z) =  Z
function bar(X:t) = f(X) = h(X)

var q : bool

object test5 = {
    function f(X:t) : t
    definition f(X) = g(X)
    axiom f(Y) <= (p)
}
result: OK