pub fn create_program<T: ToString>(
    source: T,
    location: Option<T>
) -> Result<Program, Box<dyn Error>>