parseFile :: String -> String -> Either String [Definition]
parseFile fname contents = fromParse (do
    ts <- tokeniseFromFile (["assert"] ++symbols ++ map fst cannonicals) fname contents
    let body = map cannonise ts
    runParser file () fname body)
parseFile :: String -> String -> Either String [Definition]
parseFile fname contents = fromParse (do
    ts <- tokeniseFromFile (["assert"] ++symbols ++ map fst cannonicals) fname contents
    let body = map cannonise ts
    runParser file () fname body)
parseFile fname contents = fromParse (do
    ts <- tokeniseFromFile (["assert"] ++symbols ++ map fst cannonicals) fname contents
    let body = map cannonise ts
    runParser file () fname body)