sminTree :: Ord a => STree a -> Maybe a
sminTree tree
    | sisNil tree               = Nothing
    | sisNil (sleftSub tree)    = Just (streeVal tree)
    | otherwise                 = (sminTree . sleftSub) tree
sminTree :: Ord a => STree a -> Maybe a
sminTree tree
    | sisNil tree               = Nothing
    | sisNil (sleftSub tree)    = Just (streeVal tree)
    | otherwise                 = (sminTree . sleftSub) tree
sminTree tree
    | sisNil tree               = Nothing
    | sisNil (sleftSub tree)    = Just (streeVal tree)
    | otherwise                 = (sminTree . sleftSub) tree