open gcdt2[Int] fun plusFn [n: Int]: Int one->one Int { {lhs, rhs: Int | rhs = lhs + n} } fun plusOp [n: Int]: Commutative { {c: Commutative | c.fn = {lhs: Int, rhs: (Int one->one Int) | rhs = plusFn[lhs]} } }