Parallel functional languages and compilers