A data-parallel functional programming language