ku-fpg / hermit

Haskell Equational Reasoning Model-to-Implementation Tunnel
http://www.ittc.ku.edu/csdl/fpg/Tools/HERMIT
BSD 2-Clause "Simplified" License
49 stars 8 forks source link

Use realIdUnfolding instead of idUnfolding #181

Open xich opened 7 years ago

xich commented 7 years ago

GHC's idUnfolding function checks to see if the function is a loop breaker and does not return an unfolding if so. HERMIT doesn't want this. It turns out there is a realIdUnfolding function which bypasses the check.

Codemod any instances of idUnfolding and ensure it doesn't cause any infinite loops.