include_c "string.h"; use "sequence_queries.g"; use "iterator_models.g"; use "reverse_iterator.g"; fun main() -> int@ { let seq = "yabadabado"; let seq_end = seq + strlen(seq); let subseq = "ba"; let subseq_end = subseq + strlen(subseq); let end = "bado"; let end_end = end + strlen(end); let i = find_last_subsequence(seq, seq_end, subseq, subseq_end); if (not equal(subseq, subseq_end, i)) return -1; if (not equal(end, end_end, i)) return -1; let i = find_last_subsequence(seq, seq_end, subseq, subseq_end, fun (char a, char b) { return a == b; }); if (not equal(subseq, subseq_end, i, fun (char a, char b): a == b)) return -1; if (not equal(end, end_end, i)) return -1; return 0; }