diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -133,6 +133,9 @@
 - `--input=FILE`: Uses `FILE` as the input. If this is `-` (which is the
   default), then the input will be read from STDIN.
 
+- `--io=FILE`: Shortcut for setting both `--input=FILE` and `--output=FILE` at
+  the same time. This is useful for formatting a file in-place.
+
 - `--mode=MODE`: Sets the mode to `MODE`, which must be either `format` (the
   default) or `check`. When the mode is `format`, Gild will output the
   formatted package description. When the mode is `check`, Gild will exit
diff --git a/cabal-gild.cabal b/cabal-gild.cabal
--- a/cabal-gild.cabal
+++ b/cabal-gild.cabal
@@ -11,7 +11,7 @@
 maintainer: Taylor Fausak
 name: cabal-gild
 synopsis: Formats package descriptions.
-version: 1.1.1.0
+version: 1.1.2.0
 
 source-repository head
   type: git
diff --git a/source/library/CabalGild/Type/Config.hs b/source/library/CabalGild/Type/Config.hs
--- a/source/library/CabalGild/Type/Config.hs
+++ b/source/library/CabalGild/Type/Config.hs
@@ -38,6 +38,12 @@
 applyFlag config flag = case flag of
   Flag.Help b -> pure config {help = Optional.Specific b}
   Flag.Input s -> pure config {input = Optional.Specific $ Input.fromString s}
+  Flag.IO s ->
+    pure
+      config
+        { input = Optional.Specific $ Input.fromString s,
+          output = Optional.Specific $ Output.fromString s
+        }
   Flag.Mode s -> do
     m <- Mode.fromString s
     pure config {mode = Optional.Specific m}
diff --git a/source/library/CabalGild/Type/Dependency.hs b/source/library/CabalGild/Type/Dependency.hs
--- a/source/library/CabalGild/Type/Dependency.hs
+++ b/source/library/CabalGild/Type/Dependency.hs
@@ -1,7 +1,7 @@
 module CabalGild.Type.Dependency where
 
 import qualified CabalGild.Type.VersionRange as VersionRange
-import qualified Data.Function as Function
+import qualified Data.Ord as Ord
 import qualified Distribution.Parsec as Parsec
 import qualified Distribution.Pretty as Pretty
 import qualified Distribution.Types.Dependency as Dependency
@@ -15,7 +15,7 @@
 
 instance Ord Dependency where
   compare =
-    Function.on compare $
+    Ord.comparing $
       (\(Dependency.Dependency pn vr lns) -> (pn, VersionRange.fromVersionRange vr, lns))
         . unwrap
 
diff --git a/source/library/CabalGild/Type/ExeDependency.hs b/source/library/CabalGild/Type/ExeDependency.hs
--- a/source/library/CabalGild/Type/ExeDependency.hs
+++ b/source/library/CabalGild/Type/ExeDependency.hs
@@ -1,7 +1,7 @@
 module CabalGild.Type.ExeDependency where
 
 import qualified CabalGild.Type.VersionRange as VersionRange
-import qualified Data.Function as Function
+import qualified Data.Ord as Ord
 import qualified Distribution.Parsec as Parsec
 import qualified Distribution.Pretty as Pretty
 import qualified Distribution.Types.ExeDependency as ExeDependency
@@ -15,7 +15,7 @@
 
 instance Ord ExeDependency where
   compare =
-    Function.on compare $
+    Ord.comparing $
       (\(ExeDependency.ExeDependency pn ucn vr) -> (pn, ucn, VersionRange.fromVersionRange vr))
         . unwrap
 
diff --git a/source/library/CabalGild/Type/Flag.hs b/source/library/CabalGild/Type/Flag.hs
--- a/source/library/CabalGild/Type/Flag.hs
+++ b/source/library/CabalGild/Type/Flag.hs
@@ -13,6 +13,7 @@
 data Flag
   = Help Bool
   | Input String
+  | IO String
   | Mode String
   | Output String
   | Stdin String
@@ -47,6 +48,11 @@
       ["input"]
       (GetOpt.ReqArg Input "FILE")
       "Sets the input file. Use '-' for standard input (STDIN).\nDefault: '-'",
+    GetOpt.Option
+      []
+      ["io"]
+      (GetOpt.ReqArg IO "FILE")
+      "Shortcut for setting both the input and output files.",
     GetOpt.Option
       ['m']
       ["mode"]
diff --git a/source/library/CabalGild/Type/ForeignLibOption.hs b/source/library/CabalGild/Type/ForeignLibOption.hs
--- a/source/library/CabalGild/Type/ForeignLibOption.hs
+++ b/source/library/CabalGild/Type/ForeignLibOption.hs
@@ -1,5 +1,6 @@
 module CabalGild.Type.ForeignLibOption where
 
+import qualified Data.Ord as Ord
 import qualified Distribution.Parsec as Parsec
 import qualified Distribution.Pretty as Pretty
 import qualified Distribution.Types.ForeignLibOption as ForeignLibOption
@@ -13,8 +14,7 @@
   deriving (Eq, Show)
 
 instance Ord ForeignLibOption where
-  compare x y = case (unwrap x, unwrap y) of
-    (ForeignLibOption.ForeignLibStandalone, ForeignLibOption.ForeignLibStandalone) -> EQ
+  compare = Ord.comparing Pretty.prettyShow
 
 instance Parsec.Parsec ForeignLibOption where
   parsec = ForeignLibOption <$> Parsec.parsec
diff --git a/source/library/CabalGild/Type/Language.hs b/source/library/CabalGild/Type/Language.hs
--- a/source/library/CabalGild/Type/Language.hs
+++ b/source/library/CabalGild/Type/Language.hs
@@ -1,5 +1,6 @@
 module CabalGild.Type.Language where
 
+import qualified Data.Ord as Ord
 import qualified Distribution.Parsec as Parsec
 import qualified Distribution.Pretty as Pretty
 import qualified Language.Haskell.Extension as Extension
@@ -12,17 +13,7 @@
   deriving (Eq, Show)
 
 instance Ord Language where
-  compare x y = case (unwrap x, unwrap y) of
-    (Extension.Haskell98, Extension.Haskell98) -> EQ
-    (Extension.Haskell98, _) -> LT
-    (Extension.Haskell2010, Extension.Haskell2010) -> EQ
-    (Extension.Haskell2010, Extension.Haskell98) -> GT
-    (Extension.Haskell2010, _) -> LT
-    (Extension.GHC2021, Extension.GHC2021) -> EQ
-    (Extension.GHC2021, Extension.UnknownLanguage _) -> LT
-    (Extension.GHC2021, _) -> GT
-    (Extension.UnknownLanguage s, Extension.UnknownLanguage t) -> compare s t
-    (Extension.UnknownLanguage _, _) -> GT
+  compare = Ord.comparing Pretty.prettyShow
 
 instance Parsec.Parsec Language where
   parsec = Language <$> Parsec.parsec
diff --git a/source/library/CabalGild/Type/LegacyExeDependency.hs b/source/library/CabalGild/Type/LegacyExeDependency.hs
--- a/source/library/CabalGild/Type/LegacyExeDependency.hs
+++ b/source/library/CabalGild/Type/LegacyExeDependency.hs
@@ -1,7 +1,7 @@
 module CabalGild.Type.LegacyExeDependency where
 
 import qualified CabalGild.Type.VersionRange as VersionRange
-import qualified Data.Function as Function
+import qualified Data.Ord as Ord
 import qualified Distribution.Parsec as Parsec
 import qualified Distribution.Pretty as Pretty
 import qualified Distribution.Types.LegacyExeDependency as LegacyExeDependency
@@ -16,7 +16,7 @@
 
 instance Ord LegacyExeDependency where
   compare =
-    Function.on compare $
+    Ord.comparing $
       (\(LegacyExeDependency.LegacyExeDependency s vr) -> (s, VersionRange.fromVersionRange vr))
         . unwrap
 
diff --git a/source/library/CabalGild/Type/ModuleReexport.hs b/source/library/CabalGild/Type/ModuleReexport.hs
--- a/source/library/CabalGild/Type/ModuleReexport.hs
+++ b/source/library/CabalGild/Type/ModuleReexport.hs
@@ -1,6 +1,6 @@
 module CabalGild.Type.ModuleReexport where
 
-import qualified Data.Function as Function
+import qualified Data.Ord as Ord
 import qualified Distribution.Parsec as Parsec
 import qualified Distribution.Pretty as Pretty
 import qualified Distribution.Types.ModuleReexport as ModuleReexport
@@ -14,7 +14,7 @@
 
 instance Ord ModuleReexport where
   compare =
-    Function.on compare $
+    Ord.comparing $
       (\(ModuleReexport.ModuleReexport mpn mn1 mn2) -> (mpn, mn1, mn2))
         . unwrap
 
diff --git a/source/library/CabalGild/Type/PkgconfigDependency.hs b/source/library/CabalGild/Type/PkgconfigDependency.hs
--- a/source/library/CabalGild/Type/PkgconfigDependency.hs
+++ b/source/library/CabalGild/Type/PkgconfigDependency.hs
@@ -1,7 +1,7 @@
 module CabalGild.Type.PkgconfigDependency where
 
 import qualified CabalGild.Type.PkgconfigVersionRange as PkgconfigVersionRange
-import qualified Data.Function as Function
+import qualified Data.Ord as Ord
 import qualified Distribution.Parsec as Parsec
 import qualified Distribution.Pretty as Pretty
 import qualified Distribution.Types.PkgconfigDependency as PkgconfigDependency
@@ -16,7 +16,7 @@
 
 instance Ord PkgconfigDependency where
   compare =
-    Function.on compare $
+    Ord.comparing $
       (\(PkgconfigDependency.PkgconfigDependency pn pvr) -> (pn, PkgconfigVersionRange.PkgconfigVersionRange pvr))
         . unwrap
 
diff --git a/source/library/CabalGild/Type/PkgconfigVersionRange.hs b/source/library/CabalGild/Type/PkgconfigVersionRange.hs
--- a/source/library/CabalGild/Type/PkgconfigVersionRange.hs
+++ b/source/library/CabalGild/Type/PkgconfigVersionRange.hs
@@ -1,7 +1,7 @@
 module CabalGild.Type.PkgconfigVersionRange where
 
 import qualified CabalGild.Type.VersionRange as VersionRange
-import qualified Data.Function as Function
+import qualified Data.Ord as Ord
 import qualified Distribution.Parsec as Parsec
 import qualified Distribution.Pretty as Pretty
 import qualified Distribution.Types.PkgconfigVersionRange as PkgconfigVersionRange
@@ -16,7 +16,7 @@
 
 instance Ord PkgconfigVersionRange where
   compare =
-    Function.on compare $
+    Ord.comparing $
       VersionRange.fromPkgconfigVersionRange
         . unwrap
 
diff --git a/source/library/CabalGild/Type/TestedWith.hs b/source/library/CabalGild/Type/TestedWith.hs
--- a/source/library/CabalGild/Type/TestedWith.hs
+++ b/source/library/CabalGild/Type/TestedWith.hs
@@ -1,7 +1,7 @@
 module CabalGild.Type.TestedWith where
 
 import qualified CabalGild.Type.VersionRange as VersionRange
-import qualified Data.Function as Function
+import qualified Data.Ord as Ord
 import qualified Distribution.FieldGrammar.Newtypes as Newtypes
 import qualified Distribution.Parsec as Parsec
 import qualified Distribution.Pretty as Pretty
@@ -13,15 +13,11 @@
   }
 
 instance Eq TestedWith where
-  (==) =
-    Function.on (==) $
-      fmap VersionRange.fromVersionRange
-        . Newtypes.getTestedWith
-        . unwrap
+  x == y = compare x y == EQ
 
 instance Ord TestedWith where
   compare =
-    Function.on compare $
+    Ord.comparing $
       fmap VersionRange.fromVersionRange
         . Newtypes.getTestedWith
         . unwrap
diff --git a/source/test-suite/Main.hs b/source/test-suite/Main.hs
--- a/source/test-suite/Main.hs
+++ b/source/test-suite/Main.hs
@@ -116,6 +116,16 @@
     w `Hspec.shouldBe` []
     s `Hspec.shouldBe` Map.empty
 
+  Hspec.it "sets input and output simultaneously" $ do
+    let (a, s, w) =
+          runTest
+            (Gild.mainWith ["--io", "io.cabal"])
+            (Map.singleton (Input.File "io.cabal") (String.toUtf8 ""), Map.empty)
+            Map.empty
+    a `Hspec.shouldBe` Right ()
+    w `Hspec.shouldBe` []
+    s `Hspec.shouldSatisfy` Map.member (Output.File "io.cabal")
+
   Hspec.it "succeeds with empty input" $ do
     expectGilded
       ""
