No side effects — same input always produces the same output, given any callables passed in are themselves pure.