Scan only allows vector type
Scan< Devices::Cuda, Type >::perform only allows vector types but not array.
The main issue seems to be mismatch of type alias, in scan `using RealType = typename Vector::RealType;` is declared.
vector uses the alias `using RealType = Real;`
but
array uses the alias `using ValueType = Value;`
For usage, both mean the same thing but are named differently.
Refactoring of internal type alias should solve the problem.
issue