cmd_refine :: String -> IP.IdrisParser (Either String Command)
cmd_refine name = do
   upd <- P.option False (do IP.lchar '!'; return True)
   l <- fromInteger <$> IP.natural; n <- IP.name
   hint <- IP.fnName
   return (Right (DoProofSearch upd False l n [hint]))
cmd_refine :: String -> IP.IdrisParser (Either String Command)
cmd_refine name = do
   upd <- P.option False (do IP.lchar '!'; return True)
   l <- fromInteger <$> IP.natural; n <- IP.name
   hint <- IP.fnName
   return (Right (DoProofSearch upd False l n [hint]))
cmd_refine name = do
   upd <- P.option False (do IP.lchar '!'; return True)
   l <- fromInteger <$> IP.natural; n <- IP.name
   hint <- IP.fnName
   return (Right (DoProofSearch upd False l n [hint]))