Explicit and Implicit Parallel Functional Programming