Functional core, imperative shell: application architecture | Dark Hacker News