type Address: Address + Debug + Hash + PartialEq + Eq + Serialize + for<'de> Deserialize<'de>
type Instruction: Instruction + LengthedInstruction<Unit = Self::Address> + Debug + Default
type DecodeError: DecodeError + Debug + Display
type Decoder: Decoder<Self::Instruction, Error = Self::DecodeError> + Default
type Operand