Implement generic List properties

@jpsim 
This will cast the output to the inferred type which may have unintended consequences (Double -> Int) and lead to programming errors.