interface evolve {
use inferlet:core/common.{queue, pointer, blob, blob-result};
use inferlet:core/forward.{forward-pass};
set-adapter-seed: func(
pass: borrow<forward-pass>,
seed: s64
);
initialize-adapter: func(
queue: borrow<queue>,
adapter-ptr: pointer,
rank: u32,
alpha: f32,
population-size: u32,
mu-fraction: f32,
initial-sigma: f32
);
update-adapter: func(
queue: borrow<queue>,
adapter-ptr: pointer,
scores: list<f32>,
seeds: list<s64>,
max-sigma: f32
);
}