// Path: src/main/java/litil/Utils.java
// public class Utils {
//     public static String tab(int depth) {
//         return ntimes(depth, "\t");
//     }
// 
//     public static String ntimes(int count, String s) {
//         StringBuilder res = new StringBuilder("");
//         for (int i = 0; i < count; i++) {
//             res.append(s);
//         }
// 
//         return res.toString();
//     }
// 
//     public static PrintStream indenting(String pkg) {
//         return new PrintStream(System.out) {
//             @Override
//             public void println(String s) {
//                 super.println(s);
//             }
//         };
//     }
// }


import litil.Utils;
import java.util.List;
package litil.ast;



public class LetBinding extends Instruction {
    public final String name;
    public final Type type;
    public final List<Named> args;
    public final List<Instruction> instructions;

    public LetBinding(String name, Type type, List<Named> args, List<Instruction> instructions) {
        this.type = type;
        this.args = args;
        this.name = name;
        this.instructions = instructions;
    }

    @Override
    public String repr(int indent) {
// Path: src/main/java/litil/Utils.java
// public class Utils {
//     public static String tab(int depth) {
//         return ntimes(depth, "\t");
//     }
// 
//     public static String ntimes(int count, String s) {
//         StringBuilder res = new StringBuilder("");
//         for (int i = 0; i < count; i++) {
//             res.append(s);
//         }
// 
//         return res.toString();
//     }
// 
//     public static PrintStream indenting(String pkg) {
//         return new PrintStream(System.out) {
//             @Override
//             public void println(String s) {
//                 super.println(s);
//             }
//         };
//     }
// }


// Path: src/main/java/litil/ast/LetBinding.java
import litil.Utils;
import java.util.List;

package litil.ast;



public class LetBinding extends Instruction {
    public final String name;
    public final Type type;
    public final List<Named> args;
    public final List<Instruction> instructions;

    public LetBinding(String name, Type type, List<Named> args, List<Instruction> instructions) {
        this.type = type;
        this.args = args;
        this.name = name;
        this.instructions = instructions;
    }

    @Override
    public String repr(int indent) {
        StringBuilder res = new StringBuilder(Utils.tab(indent));