Scientific Workflows, Functional Programming, Language Design.