module Imp.Extra.HsParsedModule where

import qualified GHC.Hs as Hs
import qualified GHC.Plugins as Plugin

overModule ::
  (Functor f) =>
  (Plugin.Located (Hs.HsModule Hs.GhcPs) -> f (Plugin.Located (Hs.HsModule Hs.GhcPs))) ->
  Plugin.HsParsedModule ->
  f Plugin.HsParsedModule
overModule :: forall (f :: * -> *).
Functor f =>
(Located (HsModule GhcPs) -> f (Located (HsModule GhcPs)))
-> HsParsedModule -> f HsParsedModule
overModule Located (HsModule GhcPs) -> f (Located (HsModule GhcPs))
f HsParsedModule
x = (\Located (HsModule GhcPs)
y -> HsParsedModule
x {Hs.hpm_module = y}) (Located (HsModule GhcPs) -> HsParsedModule)
-> f (Located (HsModule GhcPs)) -> f HsParsedModule
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Located (HsModule GhcPs) -> f (Located (HsModule GhcPs))
f (HsParsedModule -> Located (HsModule GhcPs)
Hs.hpm_module HsParsedModule
x)