>>> :set -XOverloadedStrings >>> lines "" [] >>> lines "foo" ["foo"] >>> lines "foo\n" ["foo"] >>> lines "foo\n\n" ["foo",""] >>> lines "foo\nbar" ["foo","bar"]
>>> :set -XOverloadedStrings >>> lines "" [] >>> lines "foo" ["foo"] >>> lines "foo\n" ["foo"] >>> lines "foo\n\n" ["foo",""] >>> lines "foo\nbar" ["foo","bar"]
>>> :set -XOverloadedStrings >>> lengthInLines "" 0 >>> lengthInLines "foo" 1 >>> lengthInLines "foo\n" 1 >>> lengthInLines "foo\n\n" 2 >>> lengthInLines "foo\nbar" 2If you do not care about ignoring the last newline character, you can use posLine . charLengthAsPosition instead, which works in O(1).
>>> :set -XOverloadedStrings >>> lengthInLines "" 0 >>> lengthInLines "foo" 1 >>> lengthInLines "foo\n" 1 >>> lengthInLines "foo\n\n" 2 >>> lengthInLines "foo\nbar" 2If you do not care about ignoring the last newline character, you can use posLine . lengthAsPosition instead, which works in O(1).