         return x
     }
 
-    func whileFlow(label: String? = nil) throws -> WhileFlow {
+    private func whileFlow(label: String? = nil) throws -> WhileFlow {
         let x = WhileFlow(label)
         x.pats = try patternMatchClause()
         x.block = try proceduresBlock()
         return x
     }
 
-    func repeatWhileFlow(label: String? = nil) throws -> RepeatWhileFlow {
+    private func repeatWhileFlow(label: String? = nil) throws -> RepeatWhileFlow {
         let x = RepeatWhileFlow(label)
         x.block = try proceduresBlock()
         x.setCond(try ep.expression())
         return x
     }
 
-    func ifFlow(label: String? = nil) throws -> IfFlow {
+    private func ifFlow(label: String? = nil) throws -> IfFlow {
         let x = IfFlow(label)
         x.pats = try patternMatchClause()
         x.block = try proceduresBlock()

        return pms
    }

    func doFlow() throws -> DoFlow {
        let x = DoFlow()
        x.block = try proceduresBlock()
        while ts.test([.Catch]) {

        return ps
    }

    private func matchingPattern() throws -> [PatternMatching] {
        switch ts.match([.Let, .Var, .Case]) {
        case .Let:
            return try optionalBindingBody({ .OptionalBindingConstantPattern($0) })
