let check = do when (null args) $ Left "No arguments given. See --help for more info." when (length params > 1) $ Left ("No arguments given for " ++ param) return (param,pArgs) where (params@(param:_),rest) = span (\(c:_) -> c=='-') args (pArgs,_) = span (\(c:_) -> c/='-') rest