Use the same interface for all the parse functions

Should enable function composability over lines
Decent function composition for parsing