cmd_dynamic :: String -> IP.IdrisParser (Either String Command)
cmd_dynamic name = do
    let optArg = do l <- P.many P.anySingle
                    if (l /= "")
                        then return $ Right (DynamicLink l)
                        else return $ Right ListDynamic
    let failure = return $ Left $ "Usage is :" ++ name ++ " [<library>]"
    P.try optArg <|> failure
cmd_dynamic :: String -> IP.IdrisParser (Either String Command)
cmd_dynamic name = do
    let optArg = do l <- P.many P.anySingle
                    if (l /= "")
                        then return $ Right (DynamicLink l)
                        else return $ Right ListDynamic
    let failure = return $ Left $ "Usage is :" ++ name ++ " [<library>]"
    P.try optArg <|> failure
cmd_dynamic name = do
    let optArg = do l <- P.many P.anySingle
                    if (l /= "")
                        then return $ Right (DynamicLink l)
                        else return $ Right ListDynamic
    let failure = return $ Left $ "Usage is :" ++ name ++ " [<library>]"
    P.try optArg <|> failure