pub trait IRValue {
type AssignValue: Serialize + for<'a> Deserialize<'a> + Debug + Clone;
type VarDefineType: Serialize + for<'a> Deserialize<'a> + Debug + Clone;
type FnDefineType: Serialize + for<'a> Deserialize<'a> + Debug + Clone;
type ParameterType: Serialize + for<'a> Deserialize<'a> + Debug + Clone;
}