https://123dok.net/document/yr3gdkjy-compiling-functional-types-to-relational-specifications-for-low-level-imperative-code.html