 -> Term -> String
prnt' lp rp (Apply (Apply (Constant c) t1) t2)
    | c `elem` binaryOps = (\ (f,l,r) ->  f $ prnt' l p t1++" "++c++" "++prnt' p r t2)
                    (if p<=lp || p<rp then (parise,0,0) else (id,lp,rp))
        where p = fromJust $ lookup c getprec
prnt' lp rp (Apply
prnt' :: Int -> Int -> Term -> String
prnt' lp rp (Apply (Apply (Constant c) t1) t2)
    | c `elem` binaryOps = (\ (f,l,r) ->  f $ prnt' l p t1++" "++c++" "++prnt' p r t2)
                    (if p<=lp || p<rp then (parise,0,0) else (id,lp,rp))
        where p = fromJust $ lookup c getprec
prnt' lp rp (Apply (Apply (Constant c) t1) t2)
    | c `elem` binaryOps = (\ (f,l,r) ->  f $ prnt' l p t1++" "++c++" "++prnt' p r t2)
                    (if p<=lp || p<rp then (parise,0,0) else (id,lp,rp))
        where p = fromJust $ lookup c getprec