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

}

extension String : Linewise {
    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

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