sinsTree v (SNode val sz tl tr)
    | v == val       = SNode val sz tl tr
    | val > v        = SNode val (sz + 1) (sinsTree v tl) tr
    | otherwise      = SNode val (sz + 1) tl (sinsTree v tr)
sinsTree v (SNode val sz tl tr)
    | v == val       = SNode val sz tl tr
    | val > v        = SNode val (sz + 1) (sinsTree v tl) tr
    | otherwise      = SNode val (sz + 1) tl (sinsTree v tr)
sinsTree v (SNode val sz tl tr)
    | v == val       = SNode val sz tl tr
    | val > v        = SNode val (sz + 1) (sinsTree v tl) tr
    | otherwise      = SNode val (sz + 1) tl (sinsTree v tr)