decodeFriendsWithCursor :: JSValue -> Result (Integer, Integer, [TwitterUser])
decodeFriendsWithCursor (JSObject obj) = do
    previous_cursor <- valFromObj "previous_cursor" obj
    next_cursor <- valFromObj "next_cursor" obj
    users <- valFromObj "users" obj >>= mapM decodeUser
    return (previous_cursor, next_cursor, users)
decodeFriendsWithCursor :: JSValue -> Result (Integer, Integer, [TwitterUser])
decodeFriendsWithCursor (JSObject obj) = do
    previous_cursor <- valFromObj "previous_cursor" obj
    next_cursor <- valFromObj "next_cursor" obj
    users <- valFromObj "users" obj >>= mapM decodeUser
    return (previous_cursor, next_cursor, users)
decodeFriendsWithCursor (JSObject obj) = do
    previous_cursor <- valFromObj "previous_cursor" obj
    next_cursor <- valFromObj "next_cursor" obj
    users <- valFromObj "users" obj >>= mapM decodeUser
    return (previous_cursor, next_cursor, users)