Rewrote furnace recipe parser

* Fixes #110
I think a simple `F` is alright for a file in a function that primarily parses a file.