Petri net unfoldings and STG generation in Haskell