// Path: app/src/main/java/com/annimon/hotarufx/lib/Context.java
// public final class Context {
// 
//     private final Map<String, Value> variables;
//     private final Map<String, Function> functions;
//     private Composition composition;
// 
//     public Context() {
//         variables = new ConcurrentHashMap<>();
//         functions = new ConcurrentHashMap<>();
//     }
// 
//     public Map<String, Value> variables() {
//         return variables;
//     }
// 
//     public Map<String, Function> functions() {
//         return functions;
//     }
// 
//     public Composition composition() {
//         return composition;
//     }
// 
//     public void composition(Composition composition) {
//         this.composition = composition;
//     }
// }


import com.annimon.hotarufx.lib.Context;
import java.util.Map;
import java.util.stream.Collectors;
package com.annimon.hotarufx.bundles;


public interface Bundle {

    Map<String, FunctionInfo> functionsInfo();

    default Map<String, FunctionType> functions() {
        return functionsInfo().entrySet().stream()
                .collect(Collectors.toMap(
                        Map.Entry::getKey,
                        e -> e.getValue().getType()));
    }

// Path: app/src/main/java/com/annimon/hotarufx/lib/Context.java
// public final class Context {
// 
//     private final Map<String, Value> variables;
//     private final Map<String, Function> functions;
//     private Composition composition;
// 
//     public Context() {
//         variables = new ConcurrentHashMap<>();
//         functions = new ConcurrentHashMap<>();
//     }
// 
//     public Map<String, Value> variables() {
//         return variables;
//     }
// 
//     public Map<String, Function> functions() {
//         return functions;
//     }
// 
//     public Composition composition() {
//         return composition;
//     }
// 
//     public void composition(Composition composition) {
//         this.composition = composition;
//     }
// }


// Path: app/src/main/java/com/annimon/hotarufx/bundles/Bundle.java
import com.annimon.hotarufx.lib.Context;
import java.util.Map;
import java.util.stream.Collectors;

package com.annimon.hotarufx.bundles;


public interface Bundle {

    Map<String, FunctionInfo> functionsInfo();

    default Map<String, FunctionType> functions() {
        return functionsInfo().entrySet().stream()
                .collect(Collectors.toMap(
                        Map.Entry::getKey,
                        e -> e.getValue().getType()));
    }

    default void load(Context context) {