@Add = ((a b) (c b))
& @S ~ (c a)
@Alloc = ((@Alloc$S0 (@Leaf a)) a)
@Alloc$S0 = ({3 a b} c)
& @Node ~ (d (e c))
& @Alloc ~ (b e)
& @Alloc ~ (a d)
@And = ((a (@F b)) (a b))
@Destroy = ((@Destroy$S0 (@T a)) a)
@Destroy$S0 = (a (b c))
& @And ~ (d (e c))
& @Destroy ~ (b e)
& @Destroy ~ (a d)
@F = (* (a a))
@Leaf = (* (a a))
@Mul = ((a b) ((c a) (c b)))
@Node = (a (b ((a (b c)) (* c))))
@Pow = ((a (b c)) (d c))
& @Mul ~ (d a)
& @S ~ (@Z b)
@S = (a ((a b) (* b)))
@T = (a (* a))
@Z = (* (a a))
@main = a
& @Destroy ~ (b a)
& @Alloc ~ (c b)
& @Pow ~ (d (e c))
& @S ~ (f e)
& @S ~ (g f)
& @S ~ (h g)
& @S ~ (@Z h)
& @S ~ (i d)
& @S ~ (@Z i)