Contributor
Mriganka B R Chowdhury

Purity and Nullability Analysis


Mentors
Jyothsna, Rahul Muttineni
Organization
Eta

I propose to work on a tool that, given JVM bytecode, decides for each method, whether it performs an effectful computation (including IO, global variable mutation etc.), or it is referentially transparent, that is it yields the same result everytime it is called with same arguments. Such functions are called 'pure functions'. The tool is also supposed to provide information about whether the return type can be the special null value, requiring a Maybe a during Eta-interop. Automated analysis for such data can simplify the development process, by enabling an ffi-generator to generate bindings for Java , ideally without requiring any manual input from the developer. Since the project is mostly exploratory, the analysis is intended to be conservative, but never wrong, in the sense that it should not recommend a return type of a for a function that may return null, but may recommend Maybe a for a function that never returns null. But the aim is to, of course, minimize the number of such cases.