successor v (SNode val _ SNil SNil)
    | v <= val       = Just val
    | otherwise      = Nothing
successor v (SNode val _ SNil SNil)
    | v <= val       = Just val
    | otherwise      = Nothing
successor v (SNode val _ SNil SNil)
    | v <= val       = Just val
    | otherwise      = Nothing