public static Querier querier(Collection<String> strings) {
        final List<String> strList = toList(strings);
        return new Querier() {
            public void through(P1<String> f) {
                for (String string : strList) {
                    f.e(string);
                }
            }

            public String get(int i) {
                return strList.get(i);  //To change body of implemented methods use File | Settings | File Templates.
            }

            public String end(P1<Integer> lineIndex) {
                int lastIndex = strList.size() - 1;

                try {
                    return strList.get(lastIndex);
                } finally {
                    lineIndex.e(lastIndex);
                }
            }
        };
    }