@SuppressWarnings("unchecked")
    public static <T extends FEELFunction> T getFunction(Class<T> functionClazz) {
        return Stream.of(FUNCTIONS)
                .filter(f -> functionClazz.isAssignableFrom(f.getClass()))
                .map(f -> (T) f)
                .findFirst()
                .orElseThrow(() -> new IllegalArgumentException("Cannot find function by class " + functionClazz.getCanonicalName() + "!"));
    }
@Test
    void getFunctionsByClassFails() {
        assertThrows(IllegalArgumentException.class, () -> BuiltInFunctions.getFunction(FakeFunction.class));
    }