(@ gcd x y .res +-                                                   gcd = x y + res ->
    (x .a .. y .b ..)                                                  a = x ..; b = y ..
    (.* >
        ([> b] a >                                                     do ->
            (-= b .a)                                                    if (a > b) ->
        >                                                                  a -= b
            ([> a] b >                                                   else
                (-= a .b)                                                  if (b > a) -> b -= a
            >                                                              else leave
                ->>                                                      ;
            )                                                          ;
        )
    )                                                                  res = a
    (a .res)                                                         _
+                                                                      x, y : integer
    {integer} x y                                                    _
+                                                                      x > 0 && y > 0
    [> 0] x y                                                        ;
)








