function product<ArrayType, ScalarBasicType> input ArrayType a; output ScalarBasicType s; end product;