use crate::backend::{Backend, BackendBridge};
pub type Device<B> = <B as Backend>::Device;
pub type FloatElem<B> = <B as Backend>::FloatElem;
pub type IntElem<B> = <B as Backend>::IntElem;
pub type FullPrecisionBackend<B> =
<<B as Backend>::FullPrecisionBridge as BackendBridge<B>>::Target;
pub type FloatTensor<B, const D: usize> = <B as Backend>::FloatTensorPrimitive<D>;
pub type IntTensor<B, const D: usize> = <B as Backend>::IntTensorPrimitive<D>;
pub type BoolTensor<B, const D: usize> = <B as Backend>::BoolTensorPrimitive<D>;
pub type QuantizedTensor<B, const D: usize> = <B as Backend>::QuantizedTensorPrimitive<D>;