pt path h b@(Branch _ l r) =
   if h == dataHash l then genAns Left l
   else if h == dataHash r then genAns Right r
   else noAns 
      where genAns dir leaf = (path ++ [dir b], Just $ packet leaf)
pt path h b@(Branch _ l r) =
   if h == dataHash l then genAns Left l
   else if h == dataHash r then genAns Right r
   else noAns 
      where genAns dir leaf = (path ++ [dir b], Just $ packet leaf)
pt path h b@(Branch _ l r) =
   if h == dataHash l then genAns Left l
   else if h == dataHash r then genAns Right r
   else noAns 
      where genAns dir leaf = (path ++ [dir b], Just $ packet leaf)