pub trait ModuleLoader {
// Required methods
fn prelude(&self) -> Result<Vec<Program>>;
fn load_values(
&self,
path: &str,
search: Option<Vec<String>>,
) -> Result<Vec<Value>>;
fn load_program(
&self,
path: &str,
search: Option<Vec<String>>,
) -> Result<Program>;
}