packages feed

monadic-bang 0.2.2.1 → 0.2.2.2

raw patch · 3 files changed

+13/−7 lines, 3 filesdep ~basedep ~ghcdep ~ghc-bootPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base, ghc, ghc-boot

API changes (from Hackage documentation)

- MonadicBang.Internal: [$sel:col:MkLoc] :: Loc -> Int
- MonadicBang.Internal: [$sel:invalid:MkInScope] :: InScope -> Occs
- MonadicBang.Internal: [$sel:line:MkLoc] :: Loc -> Int
- MonadicBang.Internal: [$sel:valid:MkInScope] :: InScope -> Occs
+ MonadicBang.Internal: [col] :: Loc -> Int
+ MonadicBang.Internal: [invalid] :: InScope -> Occs
+ MonadicBang.Internal: [line] :: Loc -> Int
+ MonadicBang.Internal: [valid] :: InScope -> Occs
- MonadicBang.Internal: addStmts :: forall sig m. Has (PsErrors :+: (HoleFills :+: (Uniques :+: (LocalVars :+: Reader DynFlags)))) sig m => Handler m [ExprLStmt GhcPs]
+ MonadicBang.Internal: addStmts :: forall (sig :: (Type -> Type) -> Type -> Type) m. Has (PsErrors :+: ((HoleFills :: (Type -> Type) -> Type -> Type) :+: ((Uniques :: (Type -> Type) -> Type -> Type) :+: (LocalVars :+: Reader DynFlags)))) sig m => Handler m [ExprLStmt GhcPs]
- MonadicBang.Internal: bangVar :: Has (Uniques :+: Reader DynFlags) sig m => LExpr -> Loc -> m RdrName
+ MonadicBang.Internal: bangVar :: forall (sig :: (Type -> Type) -> Type -> Type) m. Has ((Uniques :: (Type -> Type) -> Type -> Type) :+: Reader DynFlags) sig m => LExpr -> Loc -> m RdrName
- MonadicBang.Internal: class Typeable (AstType a) => Handle a where {
+ MonadicBang.Internal: class Typeable AstType a => Handle (a :: k) where {
- MonadicBang.Internal: class MonadTrans t => HandlingMonadTrans t
+ MonadicBang.Internal: class MonadTrans t => HandlingMonadTrans (t :: Type -> Type -> Type -> Type)
- MonadicBang.Internal: evac :: forall a sig m. (Has Fill sig m, Data a) => Handler m a
+ MonadicBang.Internal: evac :: forall a (sig :: (Type -> Type) -> Type -> Type) m. (Has Fill sig m, Data a) => Handler m a
- MonadicBang.Internal: evacPats :: forall a m sig. (Has (Fill :+: State InScope) sig m, Data a) => Handler m a
+ MonadicBang.Internal: evacPats :: forall a m (sig :: (Type -> Type) -> Type -> Type). (Has (Fill :+: State InScope) sig m, Data a) => Handler m a
- MonadicBang.Internal: fillHoles :: (Data a, Has (PsErrors :+: (Reader Options :+: (Uniques :+: (LocalVars :+: Reader DynFlags)))) sig m) => Map Loc LExpr -> Handler m a
+ MonadicBang.Internal: fillHoles :: forall a (sig :: (Type -> Type) -> Type -> Type) m. (Data a, Has (PsErrors :+: (Reader Options :+: ((Uniques :: (Type -> Type) -> Type -> Type) :+: (LocalVars :+: Reader DynFlags)))) sig m) => Map Loc LExpr -> Handler m a
- MonadicBang.Internal: handle :: forall a sig m. (Handle a, CanFail a ~ False) => Has (Effects a) sig m => Handler m (AstType a)
+ MonadicBang.Internal: handle :: forall {k} (a :: k) (sig :: (Type -> Type) -> Type -> Type) m. (Handle a, CanFail a ~ 'False, Has (Effects a) sig m) => Handler m (AstType a)
- MonadicBang.Internal: handle' :: forall sig m m'. (Handle a, m ~ HandleFailure (CanFail a) m') => Has (Effects a) sig m' => Handler m (AstType a)
+ MonadicBang.Internal: handle' :: forall (sig :: (Type -> Type) -> Type -> Type) m (m' :: Type -> Type). (Handle a, m ~ HandleFailure (CanFail a) m', Has (Effects a) sig m') => Handler m (AstType a)
- MonadicBang.Internal: ignore :: forall (e :: Type) m a. (Monad m, Typeable a, Typeable e) => Try m a
+ MonadicBang.Internal: ignore :: forall e (m :: Type -> Type) a. (Monad m, Typeable a, Typeable e) => Try m a
- MonadicBang.Internal: isInvalid :: Has (Reader InScope) sig m => OccName -> m Bool
+ MonadicBang.Internal: isInvalid :: forall (sig :: (Type -> Type) -> Type -> Type) m. Has (Reader InScope) sig m => OccName -> m Bool
- MonadicBang.Internal: locVar :: Has Uniques sig m => String -> SrcSpan -> Loc -> m RdrName
+ MonadicBang.Internal: locVar :: forall (sig :: (Type -> Type) -> Type -> Type) m. Has (Uniques :: (Type -> Type) -> Type -> Type) sig m => String -> SrcSpan -> Loc -> m RdrName
- MonadicBang.Internal: tellLocalVar :: Has (Writer Occs) sig m => OccName -> m ()
+ MonadicBang.Internal: tellLocalVar :: forall (sig :: (Type -> Type) -> Type -> Type) m. Has (Writer Occs) sig m => OccName -> m ()
- MonadicBang.Internal: tellOne :: Has (Writer (DList w)) sig m => w -> m ()
+ MonadicBang.Internal: tellOne :: forall w (sig :: (Type -> Type) -> Type -> Type) m. Has (Writer (DList w)) sig m => w -> m ()
- MonadicBang.Internal: toMaybeT :: (HandlingMonadTrans t, Monad m) => t m a -> MaybeT m a
+ MonadicBang.Internal: toMaybeT :: forall (m :: Type -> Type) a. (HandlingMonadTrans t, Monad m) => t m a -> MaybeT m a
- MonadicBang.Internal: try :: forall e sig m a. (HandlingMonadTrans (HandleFailure (CanFail e)), Typeable a, Handle e, Monad m, Has (Effects e) sig m) => Try m a
+ MonadicBang.Internal: try :: forall {k} (e :: k) (sig :: (Type -> Type) -> Type -> Type) (m :: Type -> Type) a. (HandlingMonadTrans (HandleFailure (CanFail e)), Typeable a, Handle e, Monad m, Has (Effects e) sig m) => Try m a
- MonadicBang.Internal: tryEvac :: Monad m => [Try m a] -> Try m a
+ MonadicBang.Internal: tryEvac :: forall (m :: Type -> Type) a. Monad m => [Try m a] -> Try m a
- MonadicBang.Internal: type AstType a = (r :: Type) | r -> a;
+ MonadicBang.Internal: type AstType (a :: k) = (r :: Type) | r -> k a;
- MonadicBang.Internal: type CanFail a :: Bool;
+ MonadicBang.Internal: type CanFail (a :: k) :: Bool;
- MonadicBang.Internal: type Effects a :: (Type -> Type) -> Type -> Type;
+ MonadicBang.Internal: type Effects (a :: k) :: Type -> Type -> Type -> Type;
- MonadicBang.Internal: type Fill = PsErrors :+: Writer (DList BindStmt) :+: HoleFills :+: Uniques :+: LocalVars :+: Reader DynFlags
+ MonadicBang.Internal: type Fill = PsErrors :+: Writer DList BindStmt :+: HoleFills :: Type -> Type -> Type -> Type :+: Uniques :: Type -> Type -> Type -> Type :+: LocalVars :+: Reader DynFlags
- MonadicBang.Internal: type HoleFills = Offer Loc LExpr
+ MonadicBang.Internal: type HoleFills = Offer Loc LExpr :: k -> Type -> Type
- MonadicBang.Internal: type family HandleFailure canFail = t | t -> canFail
+ MonadicBang.Internal: type family HandleFailure (canFail :: Bool) = (t :: Type -> Type -> Type -> Type) | t -> canFail
- MonadicBang.Internal: usualTries :: (Has Fill sig m, Data a) => [Try m a]
+ MonadicBang.Internal: usualTries :: forall (sig :: (Type -> Type) -> Type -> Type) (m :: Type -> Type) a. (Has Fill sig m, Data a) => [Try m a]
- MonadicBang.Internal.Effect.Offer: OfferC :: StateC (Map k v) m a -> OfferC k v m a
+ MonadicBang.Internal.Effect.Offer: OfferC :: StateC (Map k v) m a -> OfferC k v (m :: Type -> Type) a
- MonadicBang.Internal.Effect.Offer: [Yoink] :: k -> Offer k v m (Maybe v)
+ MonadicBang.Internal.Effect.Offer: [Yoink] :: forall {k} k1 v (m :: k). k1 -> Offer k1 v m (Maybe v)
- MonadicBang.Internal.Effect.Offer: [getOfferState] :: OfferC k v m a -> StateC (Map k v) m a
+ MonadicBang.Internal.Effect.Offer: [getOfferState] :: OfferC k v (m :: Type -> Type) a -> StateC (Map k v) m a
- MonadicBang.Internal.Effect.Offer: data Offer k v m a
+ MonadicBang.Internal.Effect.Offer: data Offer k1 v (m :: k) a
- MonadicBang.Internal.Effect.Offer: newtype OfferC k v m a
+ MonadicBang.Internal.Effect.Offer: newtype OfferC k v (m :: Type -> Type) a
- MonadicBang.Internal.Effect.Offer: yoink :: Has (Offer k v) sig m => k -> m (Maybe v)
+ MonadicBang.Internal.Effect.Offer: yoink :: forall k v (sig :: (Type -> Type) -> Type -> Type) m. Has (Offer k v :: (Type -> Type) -> Type -> Type) sig m => k -> m (Maybe v)
- MonadicBang.Internal.Effect.Uniques: UniquesC :: StateC UniqSupply m a -> UniquesC m a
+ MonadicBang.Internal.Effect.Uniques: UniquesC :: StateC UniqSupply m a -> UniquesC (m :: Type -> Type) a
- MonadicBang.Internal.Effect.Uniques: [FreshUnique] :: Uniques m Unique
+ MonadicBang.Internal.Effect.Uniques: [FreshUnique] :: forall {k} (m :: k). Uniques m Unique
- MonadicBang.Internal.Effect.Uniques: [getUniquesState] :: UniquesC m a -> StateC UniqSupply m a
+ MonadicBang.Internal.Effect.Uniques: [getUniquesState] :: UniquesC (m :: Type -> Type) a -> StateC UniqSupply m a
- MonadicBang.Internal.Effect.Uniques: data Uniques m a
+ MonadicBang.Internal.Effect.Uniques: data Uniques (m :: k) a
- MonadicBang.Internal.Effect.Uniques: freshUnique :: Has Uniques sig m => m Unique
+ MonadicBang.Internal.Effect.Uniques: freshUnique :: forall (sig :: (Type -> Type) -> Type -> Type) m. Has (Uniques :: (Type -> Type) -> Type -> Type) sig m => m Unique
- MonadicBang.Internal.Effect.Uniques: newtype UniquesC m a
+ MonadicBang.Internal.Effect.Uniques: newtype UniquesC (m :: Type -> Type) a
- MonadicBang.Internal.Effect.Writer.Discard: DiscardC :: m a -> DiscardC w m a
+ MonadicBang.Internal.Effect.Writer.Discard: DiscardC :: m a -> DiscardC (w :: k) (m :: k1 -> Type) (a :: k1)
- MonadicBang.Internal.Effect.Writer.Discard: [evalDiscardC] :: DiscardC w m a -> m a
+ MonadicBang.Internal.Effect.Writer.Discard: [evalDiscardC] :: DiscardC (w :: k) (m :: k1 -> Type) (a :: k1) -> m a
- MonadicBang.Internal.Effect.Writer.Discard: evalWriter :: (Monoid w, Algebra sig m) => DiscardC w m a -> m a
+ MonadicBang.Internal.Effect.Writer.Discard: evalWriter :: forall w (sig :: (Type -> Type) -> Type -> Type) m a. (Monoid w, Algebra sig m) => DiscardC w m a -> m a
- MonadicBang.Internal.Effect.Writer.Discard: newtype DiscardC w m a
+ MonadicBang.Internal.Effect.Writer.Discard: newtype DiscardC (w :: k) (m :: k1 -> Type) (a :: k1)
- MonadicBang.Internal.Error: tellPsError :: Has PsErrors sig m => PsError -> SrcSpan -> m ()
+ MonadicBang.Internal.Error: tellPsError :: forall (sig :: (Type -> Type) -> Type -> Type) m. Has PsErrors sig m => PsError -> SrcSpan -> m ()
- MonadicBang.Internal.Error: type PsErrors = Writer (Messages PsError)
+ MonadicBang.Internal.Error: type PsErrors = Writer Messages PsError
- MonadicBang.Internal.Options: parseOptions :: Has (Throw ErrorCall) sig m => Located (HsModule GhcPs) -> [CommandLineOption] -> m Options
+ MonadicBang.Internal.Options: parseOptions :: forall (sig :: (Type -> Type) -> Type -> Type) m. Has (Throw ErrorCall) sig m => Located (HsModule GhcPs) -> [CommandLineOption] -> m Options
- MonadicBang.Internal.Utils: type Handler m a = a -> m a
+ MonadicBang.Internal.Utils: type Handler (m :: Type -> Type) a = a -> m a
- MonadicBang.Internal.Utils: type Try m a = Handler (MaybeT m) a
+ MonadicBang.Internal.Utils: type Try (m :: Type -> Type) a = Handler MaybeT m a

Files

monadic-bang.cabal view
@@ -14,7 +14,7 @@ -- PVP summary:      +-+------- breaking API changes
 --                   | | +----- non-breaking API additions
 --                   | | | +--- code changes with no API change
-version:            0.2.2.1
+version:            0.2.2.2
 
 -- A short (one-line) description of the package.
 synopsis:           GHC plugin to desugar ! into do-notation
@@ -53,6 +53,7 @@                     GHC == 9.6.3
                     GHC == 9.8.1
                     GHC == 9.10.1
+                    GHC == 9.12.1
 
 source-repository head
     type:           git
@@ -85,8 +86,8 @@                       PatternSynonyms
 
     -- Other library packages from which modules are imported.
-    build-depends:    base >=4.17.0.0 && <4.21,
-                      ghc >=9.4 && <9.11,
+    build-depends:    base >=4.17.0.0 && <4.22,
+                      ghc >=9.4 && <9.13,
                       containers ^>=0.6.4.1 || ^>=0.7,
                       transformers >=0.5.6.2 && <0.7,
                       fused-effects ^>=1.1.1.2
@@ -121,7 +122,7 @@     -- Test dependencies.
     build-depends:    base,
                       ghc,
-                      ghc-boot >=9.4 && <9.11,
+                      ghc-boot >=9.4 && <9.13,
                       ghc-paths ^>=0.1.0.12,
                       transformers,
                       monadic-bang
src/MonadicBang/Internal.hs view
@@ -371,7 +371,7 @@ -- source span can be found in the given list.
 fillHoles :: (Data a, Has (PsErrors :+: Reader Options :+: Uniques :+: LocalVars :+: Reader DynFlags) sig m) => Map Loc LExpr -> Handler m a
 fillHoles fillers ast = do
-  (remainingErrs, (fromDList -> binds :: [BindStmt], ast')) <- runOffer fillers . runWriter $ evac ast
+  (remainingErrs, (fromDList -> (binds :: [BindStmt]), ast')) <- runOffer fillers . runWriter $ evac ast
   MkOptions{preserveErrors} <- ask
   for_ binds \bind -> tellPsError (psError (bindStmtExpr bind) preserveErrors) (bangSpan $ bindStmtSpan bind)
   dflags <- ask
test/MonadicBang/Test/Utils/RunGhcParser.hs view
@@ -42,7 +42,7 @@       modSummary = ModSummary
         { ms_mod = mkModule (stringToUnit modNameStr) modName
         , ms_hsc_src = HsSrcFile
-        , ms_location = mkHomeModLocation (initFinderOpts dflags) modName ""
+        , ms_location = mkHomeModLocation (initFinderOpts dflags) modName (error "monadic-bang (test suite): no home path")
         , ms_hs_hash = fingerprintString src
         , ms_obj_date = Nothing
         , ms_dyn_obj_date = Nothing
@@ -66,7 +66,12 @@     addPlugin = do
       let session = !getSession
           plugins = hsc_plugins session
-      setSession (session{hsc_plugins = plugins{staticPlugins = StaticPlugin (PluginWithArgs MonadicBang.plugin []) : staticPlugins plugins}})
+      setSession (session{hsc_plugins = plugins{staticPlugins = StaticPlugin
+        { spPlugin = PluginWithArgs MonadicBang.plugin []
+#if MIN_VERSION_ghc(9,12,0)
+        , spInitialised = False
+#endif
+        } : staticPlugins plugins}})
 
 initialDynFlags :: MonadIO m => m DynFlags
 initialDynFlags = do