This conversion approach has failed because we also need the boundaries to be of
type (Exp y) and not `y`. I don't have the time to implement the required
changes to this so I will return to the compilation approach using data
constructors.