!7 sclass WikiResult { S rawPage; } WikiResult > Redirect { S toWord; } p { testWord("fun"); testWord("recreation"); } svoid testWord(S word) { print("= " + word + " ="); WikiResult result = querySimpleWikipedia(word); print(result.rawPage); print(); if (result >> Redirect) print("Redirect to: " + quote(result/Redirect.toWord)); print(); } static WikiResult querySimpleWikipedia(S word) { S raw = loadPage("https://simple.wikipedia.org/wiki/" + urlencode(word) + "?action=raw"), rawPage = raw; // check for redirect new Matches m; S p = "#REDIRECT [["; if (startsWith(raw, p) && endsWith(raw, "]]")) ret nu(Redirect, +rawPage, dropPrefix(p, dropSuffix("]]", raw))); ret nu(WikiResult, +rawPage); }