def tail(int jjj) {
        println jjj

        if (true)
                return <selection>fact</selection>(jjj)
        else
                return fact(jjj)
}


int fact(int n) {
        if (n > 0) {
                return n * fact(n - 1)
        }
        else return 1
}
-----
def tail(int jjj) {
        println jjj

        if (true) {
            if (jjj > 0) {
                return jjj * fact(jjj - 1)
            } else return 1
        }
        else
                return fact(jjj)
}


int fact(int n) {
        if (n > 0) {
                return n * fact(n - 1)
        }
        else return 1
}