pub type Parameter = Parameter<<Value as IRValue>::ParameterType>;
struct Parameter { pub ty: TypeDefine, pub name: String, }
ty: TypeDefine
name: String
using string because its the name of parameter, not a value