{"push_id":716587731,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"fc2621ecdfd36e6c2c1e3e4f27a005c72f26098e","before":"c013a7fce2b3aeb694e21ee17346a2cc3b168094","commits":[{"sha":"fc2621ecdfd36e6c2c1e3e4f27a005c72f26098e","author":{"email":"8d911433753a666745f38ab806951e50d0ac0719@web.de","name":"Julian Jabs"},"message":"Correct refunctionalization: First care about the\nmultiple destructor calls containing constructors.\nThis is necessary because extracting constructors\nout of copatterns with multiple destructors breaks\nthe bisimulation.\nExample:\nf(c1()).d().d()  = t1\nf(c2()).d()      = t2\n\ntransforms to\n\nf(x).d().d() = h1(x)\nf(x).d()     = h2(x)\n\nh1(c1()) = t1\nh2(c2()) = t2\n\nThis means that, in the original program it is\n\nf(c2()).d().d() --> t2().d\n\nbut in the transformed program it is\n\nf(c2()).d().d() --> h1(c2()) --|","distinct":true,"url":"https://api.github.com/repos/lordxist/uroboro-transformations/commits/fc2621ecdfd36e6c2c1e3e4f27a005c72f26098e"}]}