diff --git a/.hlint.yaml b/.hlint.yaml
--- a/.hlint.yaml
+++ b/.hlint.yaml
@@ -11,12 +11,37 @@
 #   * このファイルをプロジェクトルートに .hlint.yaml としてコピー
 #   * または .hlint.yaml から参照: - arguments: [--hint=path/to/this/.hlint.yaml]
 - arguments:
+    - "-XGHC2024"
+    - "-XApplicativeDo"
     - "-XBlockArguments"
     - "-XCPP"
+    - "-XDefaultSignatures"
+    - "-XDerivingVia"
+    - "-XDuplicateRecordFields"
+    - "-XFunctionalDependencies"
+    - "-XLexicalNegation"
+    - "-XLinearTypes"
+    - "-XMonadComprehensions"
+    - "-XMultiWayIf"
+    - "-XNegativeLiterals"
+    - "-XNoFieldSelectors"
+    - "-XNoImplicitPrelude"
+    - "-XOverloadedLabels"
     - "-XOverloadedRecordDot"
-    - "-XOverloadedRecordUpdate"
+    - "-XOverloadedStrings"
+    - "-XParallelListComp"
+    - "-XPatternSynonyms"
+    - "-XQualifiedDo"
+    - "-XQuantifiedConstraints"
     - "-XQuasiQuotes"
+    - "-XRecordWildCards"
     - "-XRecursiveDo"
+    - "-XStrictData"
+    - "-XTemplateHaskell"
+    - "-XTypeData"
+    - "-XTypeFamilies"
+    - "-XTypeFamilyDependencies"
+    - "-XViewPatterns"
 - group:
     enabled: true
     name: generalise
@@ -610,6 +635,52 @@
       within: []
     - message: "Deprecated. Use error instead, which now includes stack traces."
       name: errorWithStackTrace
+      within: []
+- extensions:
+    - message: "Defers ambiguity errors to call sites, making debugging harder"
+      name:
+        - AllowAmbiguousTypes
+      within: []
+    - message: "Defers type errors to runtime, defeating Haskell's type safety"
+      name:
+        - DeferTypeErrors
+      within: []
+    - message: "Causes unexpected type defaulting (e.g., show.read defaults to ())"
+      name:
+        - ExtendedDefaultRules
+      within: []
+    - message: Experimental and may break in future GHC versions
+      name:
+        - ImpredicativeTypes
+      within: []
+    - message: "Makes instance selection non-deterministic and order-dependent"
+      name:
+        - IncoherentInstances
+      within: []
+    - message: Can cause Core Lint errors with DataKinds and PolyKinds
+      name:
+        - LiberalTypeSynonyms
+      within: []
+    - message: "Deprecated since GHC 7.10, use OVERLAPPING pragma if truly needed"
+      name:
+        - OverlappingInstances
+      within: []
+    - message: "Changes do/if-then-else semantics, breaks deriving and TH"
+      name:
+        - RebindableSyntax
+      within: []
+    - message: "Can cause type checker non-termination or stack overflow"
+      name:
+        - UndecidableSuperClasses
+      within: []
+- extensions:
+    - message: 'Breaks coherence. If unavoidable, add {-# HLINT ignore "Avoid restricted extensions" #-}'
+      name:
+        - ImplicitParams
+      within: []
+    - message: 'May cause type checker loops. If unavoidable, add {-# HLINT ignore "Avoid restricted extensions" #-}'
+      name:
+        - UndecidableInstances
       within: []
 - functions:
     - message: "Partial: throws on empty Fold. Use (^?) instead."
diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,30 @@
 
 ## [Unreleased]
 
+## [1.0.5.0] - 2026-01-12
+
+### Added
+
+- `data-default` package (^>=0.8.0.2) as a dependency for default value support
+- `Data.Default` re-export in `Himari.Prelude` for `Default` type class and `def` function
+- `retry` package (^>=0.9.3.1) as a dependency for retry combinators
+- `UnliftIO.Retry` re-export in `Himari.Prelude` for retry operations with exponential backoff
+- HLint rules to warn against dangerous language extensions: `AllowAmbiguousTypes`, `DeferTypeErrors`,
+  `ExtendedDefaultRules`, `ImpredicativeTypes`, `IncoherentInstances`, `LiberalTypeSynonyms`,
+  `OverlappingInstances`, `RebindableSyntax`, `UndecidableSuperClasses`
+- HLint rules to warn against discouraged language extensions: `ImplicitParams`, `UndecidableInstances`
+
+### Changed
+
+- Document recommended language extensions beyond GHC2024 (e.g., `BlockArguments`, `StrictData`,
+  `OverloadedStrings`, `NoFieldSelectors`, etc.) with rationale for each
+- Document extensions intentionally not enabled (e.g., `Arrows`, `DeriveAnyClass`, `OverloadedLists`,
+  `OverloadedRecordUpdate`, `Strict`, `UnicodeSyntax`) with reasons
+- Document dangerous language extensions that should be avoided: `AllowAmbiguousTypes`, `DeferTypeErrors`,
+  `ExtendedDefaultRules`, `ImpredicativeTypes`, `IncoherentInstances`, `LiberalTypeSynonyms`,
+  `OverlappingInstances`, `RebindableSyntax`, `UndecidableSuperClasses`
+- Document discouraged language extensions that require caution: `ImplicitParams`, `UndecidableInstances`
+
 ## [1.0.4.0] - 2026-01-09
 
 ### Added
diff --git a/himari.cabal b/himari.cabal
--- a/himari.cabal
+++ b/himari.cabal
@@ -1,6 +1,6 @@
-cabal-version: 3.0
+cabal-version: 3.12
 name: himari
-version: 1.0.4.0
+version: 1.0.5.0
 synopsis: A standard library for Haskell as an alternative to rio
 description:
   A standard library for Haskell inspired by rio.
@@ -47,7 +47,36 @@
 
   default-language: GHC2024
   default-extensions:
+    ApplicativeDo
+    BlockArguments
+    CPP
+    DefaultSignatures
+    DerivingVia
+    DuplicateRecordFields
+    FunctionalDependencies
+    LexicalNegation
+    LinearTypes
+    MonadComprehensions
+    MultiWayIf
+    NegativeLiterals
+    NoFieldSelectors
     NoImplicitPrelude
+    OverloadedLabels
+    OverloadedRecordDot
+    OverloadedStrings
+    ParallelListComp
+    PatternSynonyms
+    QualifiedDo
+    QuantifiedConstraints
+    QuasiQuotes
+    RecordWildCards
+    RecursiveDo
+    StrictData
+    TemplateHaskell
+    TypeData
+    TypeFamilies
+    TypeFamilyDependencies
+    ViewPatterns
 
   build-depends:
     aeson ^>=2.2.3.0,
@@ -56,6 +85,7 @@
     bytestring ^>=0.12.2.0,
     containers ^>=0.7,
     convertible ^>=1.1.1.1,
+    data-default ^>=0.8.0.2,
     deepseq ^>=1.5.0.0,
     deriving-aeson ^>=0.2.10,
     exceptions ^>=0.10.9,
@@ -66,6 +96,7 @@
     mtl ^>=2.3.1,
     pretty-simple ^>=4.1.3,
     primitive ^>=0.9.1.0,
+    retry ^>=0.9.3.1,
     safe ^>=0.3.21,
     text ^>=2.1.2,
     time ^>=1.12.2,
@@ -123,7 +154,9 @@
     Himari.Prelude.FunctorSpec
     Himari.Title
     HlintBaseSpec
+    HlintExtensionSpec
     HlintSamples.BasePartial
+    HlintSamples.ExtensionDangerous
     HlintSamples.UnliftioPreference
     HlintUnliftioSpec
     TitleSpec
diff --git a/src/Himari/Env.hs b/src/Himari/Env.hs
--- a/src/Himari/Env.hs
+++ b/src/Himari/Env.hs
@@ -1,5 +1,3 @@
-{-# LANGUAGE TypeFamilies #-}
-
 -- | Core environment monad for Himari.
 module Himari.Env
   ( Himari (..)
diff --git a/src/Himari/Env/Simple.hs b/src/Himari/Env/Simple.hs
--- a/src/Himari/Env/Simple.hs
+++ b/src/Himari/Env/Simple.hs
@@ -1,7 +1,3 @@
-{-# LANGUAGE FunctionalDependencies #-}
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE NoFieldSelectors #-}
-
 -- | 基本的な環境を提供するモジュール。
 -- 単純に実行だけをしたい場合、これで十分結果を手に入れられることが多いです。
 module Himari.Env.Simple
diff --git a/src/Himari/Logger.hs b/src/Himari/Logger.hs
--- a/src/Himari/Logger.hs
+++ b/src/Himari/Logger.hs
@@ -1,5 +1,3 @@
-{-# LANGUAGE FunctionalDependencies #-}
-
 -- | Logger utilities for Himari.
 module Himari.Logger
   ( HasLogAction (..)
diff --git a/src/Himari/Prelude.hs b/src/Himari/Prelude.hs
--- a/src/Himari/Prelude.hs
+++ b/src/Himari/Prelude.hs
@@ -20,6 +20,7 @@
 import Data.Coerce as Export
 import Data.Complex as Export
 import Data.Convertible as Export
+import Data.Default as Export
 import Data.Either as Export
 import Data.Eq as Export
 import Data.Fixed as Export
@@ -62,4 +63,5 @@
 import UnliftIO.Environment as Export
 import UnliftIO.Exception.Lens as Export
 import UnliftIO.IO.File as Export
+import UnliftIO.Retry as Export
 import Prelude as Export
diff --git a/test/Himari/Env/SimpleSpec.hs b/test/Himari/Env/SimpleSpec.hs
--- a/test/Himari/Env/SimpleSpec.hs
+++ b/test/Himari/Env/SimpleSpec.hs
@@ -1,6 +1,3 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE TemplateHaskell #-}
-
 module Himari.Env.SimpleSpec (spec) where
 
 import Himari
diff --git a/test/Himari/Prelude/FunctorSpec.hs b/test/Himari/Prelude/FunctorSpec.hs
--- a/test/Himari/Prelude/FunctorSpec.hs
+++ b/test/Himari/Prelude/FunctorSpec.hs
@@ -1,5 +1,3 @@
-{-# LANGUAGE OverloadedStrings #-}
-
 -- | Tests for functor-related re-exports in Himari.Prelude.
 module Himari.Prelude.FunctorSpec (spec) where
 
diff --git a/test/Himari/Title.hs b/test/Himari/Title.hs
--- a/test/Himari/Title.hs
+++ b/test/Himari/Title.hs
@@ -1,5 +1,3 @@
-{-# LANGUAGE OverloadedStrings #-}
-
 module Himari.Title
   ( titleComponents
   , generateAllCombinations
diff --git a/test/HlintBaseSpec.hs b/test/HlintBaseSpec.hs
--- a/test/HlintBaseSpec.hs
+++ b/test/HlintBaseSpec.hs
@@ -1,5 +1,3 @@
-{-# LANGUAGE OverloadedStrings #-}
-
 module HlintBaseSpec (spec) where
 
 import Data.Text qualified as T
diff --git a/test/HlintExtensionSpec.hs b/test/HlintExtensionSpec.hs
new file mode 100644
--- /dev/null
+++ b/test/HlintExtensionSpec.hs
@@ -0,0 +1,31 @@
+module HlintExtensionSpec (spec) where
+
+import Data.Text qualified as T
+import Himari
+import Test.Syd
+
+spec :: Spec
+spec = do
+  describe "hlint extension restriction rules" . beforeAll runHlintOnSample $ do
+    describe "Dangerous extensions" $ do
+      itWithOuter "AllowAmbiguousTypes should warn" $ \output -> do
+        output `shouldSatisfy` containsWarning "AllowAmbiguousTypes"
+
+    describe "Discouraged extensions" $ do
+      itWithOuter "ImplicitParams should warn" $ \output -> do
+        output `shouldSatisfy` containsWarning "ImplicitParams"
+
+      itWithOuter "UndecidableInstances should warn" $ \output -> do
+        output `shouldSatisfy` containsWarning "UndecidableInstances"
+
+runHlintOnSample :: IO Text
+runHlintOnSample = do
+  (exitCode, stdoutOutput, stderrOutput) <-
+    readProcess $
+      proc "hlint" ["test/HlintSamples/ExtensionDangerous.hs"]
+  pure $ case exitCode of
+    ExitSuccess -> convert stdoutOutput
+    ExitFailure _ -> convert stdoutOutput <> convert stderrOutput
+
+containsWarning :: Text -> Text -> Bool
+containsWarning expectedMsg output = expectedMsg `T.isInfixOf` output
diff --git a/test/HlintSamples/ExtensionDangerous.hs b/test/HlintSamples/ExtensionDangerous.hs
new file mode 100644
--- /dev/null
+++ b/test/HlintSamples/ExtensionDangerous.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE AllowAmbiguousTypes #-}
+{-# LANGUAGE ImplicitParams #-}
+{-# LANGUAGE UndecidableInstances #-}
+
+-- Sample file to test extension restriction hlint rules
+-- This file intentionally uses dangerous and discouraged extensions
+module HlintSamples.ExtensionDangerous where
+
+import Himari
+
+-- AllowAmbiguousTypes example
+class AmbiguousClass a where
+  ambiguousMethod :: Int
+
+-- ImplicitParams example
+implicitParamsExample :: (?x :: Int) => Int
+implicitParamsExample = ?x + 1
+
+-- UndecidableInstances example (combined with FlexibleInstances from GHC2024)
+class ShowWrapper a where
+  showWrapper :: a -> Text
+
+instance (Show a) => ShowWrapper a where
+  showWrapper = convert . show
diff --git a/test/HlintUnliftioSpec.hs b/test/HlintUnliftioSpec.hs
--- a/test/HlintUnliftioSpec.hs
+++ b/test/HlintUnliftioSpec.hs
@@ -1,5 +1,3 @@
-{-# LANGUAGE OverloadedStrings #-}
-
 module HlintUnliftioSpec (spec) where
 
 import Data.Text qualified as T
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -5,6 +5,7 @@
 import Himari.Env.SimpleSpec qualified as SimpleSpec
 import Himari.Prelude.FunctorSpec qualified as FunctorSpec
 import HlintBaseSpec qualified
+import HlintExtensionSpec qualified
 import HlintUnliftioSpec qualified
 import Test.Syd
 import TitleSpec qualified
@@ -17,3 +18,4 @@
   describe "Prelude.Functor" FunctorSpec.spec
   describe "HlintUnliftio" HlintUnliftioSpec.spec
   describe "HlintBase" HlintBaseSpec.spec
+  describe "HlintExtension" HlintExtensionSpec.spec
diff --git a/test/TitleSpec.hs b/test/TitleSpec.hs
--- a/test/TitleSpec.hs
+++ b/test/TitleSpec.hs
@@ -1,5 +1,3 @@
-{-# LANGUAGE OverloadedStrings #-}
-
 module TitleSpec (spec) where
 
 import Data.List.NonEmpty qualified as NE
