defn :: Parser Expr
defn = try extern
       <|> try function
       <|> try unarydef
       <|> try binarydef
       <|> expr
defn :: Parser Expr
defn = try extern
       <|> try function
       <|> try unarydef
       <|> try binarydef
       <|> expr
defn = try extern
       <|> try function
       <|> try unarydef
       <|> try binarydef
       <|> expr