// Path: src/main/java/net/liujiacai/jcscheme/type/JCBool.java
// public class JCBool extends JCObject {
//     private static JCBool trueVal = new JCBool(true);
//     private static JCBool falseVal = new JCBool(false);
//     private boolean value;
// 
//     private JCBool(boolean value) {
//         this.value = value;
//     }
// 
//     public static JCBool getInstance(boolean bool) {
//         if (bool) {
//             return trueVal;
//         } else {
//             return falseVal;
//         }
//     }
// 
//     public boolean getValue() {
//         return value;
//     }
// 
//     @Override
//     public String toString() {
//         return String.valueOf(value);
//     }
// 
// }
// 
// Path: src/main/java/net/liujiacai/jcscheme/type/JCObject.java
// public abstract class JCObject {
// 
// }
// 
// Path: src/main/java/net/liujiacai/jcscheme/type/JCString.java
// public class JCString extends JCObject {
// 	private String value;
// 
// 	public String getValue() {
// 		return value;
// 	}
// 
// 	public JCString(String value) {
// 		this.value = value;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return value;
// 	}
// 
// 
// }


import net.liujiacai.jcscheme.type.JCBool;
import net.liujiacai.jcscheme.type.JCObject;
import net.liujiacai.jcscheme.type.JCString;
package net.liujiacai.jcscheme.builtin;


public class JCStringFuncs {

    public static JCBool equalTo(JCObject... args) {
// Path: src/main/java/net/liujiacai/jcscheme/type/JCBool.java
// public class JCBool extends JCObject {
//     private static JCBool trueVal = new JCBool(true);
//     private static JCBool falseVal = new JCBool(false);
//     private boolean value;
// 
//     private JCBool(boolean value) {
//         this.value = value;
//     }
// 
//     public static JCBool getInstance(boolean bool) {
//         if (bool) {
//             return trueVal;
//         } else {
//             return falseVal;
//         }
//     }
// 
//     public boolean getValue() {
//         return value;
//     }
// 
//     @Override
//     public String toString() {
//         return String.valueOf(value);
//     }
// 
// }
// 
// Path: src/main/java/net/liujiacai/jcscheme/type/JCObject.java
// public abstract class JCObject {
// 
// }
// 
// Path: src/main/java/net/liujiacai/jcscheme/type/JCString.java
// public class JCString extends JCObject {
// 	private String value;
// 
// 	public String getValue() {
// 		return value;
// 	}
// 
// 	public JCString(String value) {
// 		this.value = value;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return value;
// 	}
// 
// 
// }


// Path: src/main/java/net/liujiacai/jcscheme/builtin/JCStringFuncs.java
import net.liujiacai.jcscheme.type.JCBool;
import net.liujiacai.jcscheme.type.JCObject;
import net.liujiacai.jcscheme.type.JCString;

package net.liujiacai.jcscheme.builtin;


public class JCStringFuncs {

    public static JCBool equalTo(JCObject... args) {
        String before = ((JCString) args[0]).getValue();