import public Data.List.Lazy
data StringIterator : String -> Type
withString : (str : String) -> ((1 _ : StringIterator str) -> a) -> a
withIteratorString : (str : String) -> (1 _ : StringIterator str) -> (String -> a) -> a
Runs the action `f` on the slice `res` of the original string `str` represented by the
iterator `it`
data UnconsResult : String -> Type
EOF : UnconsResult str
Character : Char -> (1 _ : StringIterator str) -> UnconsResult str
uncons : (str : String) -> (1 _ : StringIterator str) -> UnconsResult str
foldl : (accTy -> Char -> accTy) -> accTy -> String -> accTy
unpack : String -> LazyList Char