use crate::{
ll::value::{Dict, RawValue},
Engine, Error, TypeBuilder,
};
pub trait CoreLibrary {
fn define_nil(&mut self, builder: TypeBuilder<()>) -> TypeBuilder<()>;
fn define_boolean(&mut self, builder: TypeBuilder<bool>) -> TypeBuilder<bool>;
fn define_number(&mut self, builder: TypeBuilder<f64>) -> TypeBuilder<f64>;
fn define_string(&mut self, builder: TypeBuilder<String>) -> TypeBuilder<String>;
fn define_list(&mut self, builder: TypeBuilder<Vec<RawValue>>) -> TypeBuilder<Vec<RawValue>>;
fn define_dict(&mut self, builder: TypeBuilder<Dict>) -> TypeBuilder<Dict>;
fn load(&mut self, engine: &mut Engine) -> Result<(), Error>;
}