diff --git a/hlint.cabal b/hlint.cabal
--- a/hlint.cabal
+++ b/hlint.cabal
@@ -1,7 +1,7 @@
 cabal-version:      >= 1.6
 build-type:         Simple
 name:               hlint
-version:            1.8.35
+version:            1.8.36
 license:            BSD3
 license-file:       LICENSE
 category:           Development
diff --git a/src/CmdLine.hs b/src/CmdLine.hs
--- a/src/CmdLine.hs
+++ b/src/CmdLine.hs
@@ -118,7 +118,8 @@
     findHints <- concatMapM (getFile path exts2) [x | FindHints x <- opt]
 
     let hintFiles = [x | Hints x <- opt]
-    hints <- mapM (getHintFile dataDir) $ hintFiles ++ ["HLint" | null hintFiles]
+    let withHints = [x | WithHint x <- opt]
+    hints <- mapM (getHintFile dataDir) $ hintFiles ++ ["HLint" | null hintFiles && null withHints]
     let givenHints = if null hintFiles then [] else hints
 
     let languages = getExtensions [x | Language x <- opt]
@@ -139,7 +140,7 @@
         ,cmdFiles = files
         ,cmdHintFiles = hints
         ,cmdGivenHints = givenHints
-        ,cmdWithHints = [x | WithHint x <- opt]
+        ,cmdWithHints = withHints
         ,cmdReports = [x | Report x <- opt]
         ,cmdIgnore = [x | Skip x <- opt]
         ,cmdShowAll = ShowAll `elem` opt
diff --git a/src/Settings.hs b/src/Settings.hs
--- a/src/Settings.hs
+++ b/src/Settings.hs
@@ -88,7 +88,7 @@
 readSetting s (FunBind _ [Match _ (Ident _ (getSeverity -> Just severity)) pats (UnGuardedRhs _ bod) bind])
     | InfixApp _ lhs op rhs <- bod, opExp op ~= "==>" =
         let (a,b) = readSide $ childrenBi bind in
-        [MatchExp severity (if null names then defaultHintName else head names) s (fromParen lhs) (fromParen rhs) a b]
+        [MatchExp severity (headDef defaultHintName names) s (fromParen lhs) (fromParen rhs) a b]
     | otherwise = [Classify severity n func | n <- names2, func <- readFuncs bod]
     where
         names = filter notNull $ getNames pats bod
