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

        return remaining
    }

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

}

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