 }
 
 extension String : Linewise {
-    func lines() -> UnfoldSequence<String, String.Index> {
+    public func lines() -> UnfoldSequence<String, String.Index> {
         return sequence(state: self.startIndex, next: { (consumedUpTo: inout String.Index) -> String? in
             guard consumedUpTo != self.endIndex else { return nil }
             let (lineContents, lineEnd) = self.getLine(startingAt: consumedUpTo)

import Foundation

protocol Linewise {
    associatedtype Seq : Sequence
    func lines() -> Seq
}

        return remaining
    }

    public func lines() -> UnfoldSequence<String, String?> {
        if self.streamStatus == .notOpen { 
             self.open()
        }
