unbound 0.2.1 → 0.2.2
raw patch · 2 files changed
+3/−3 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Unbound.LocallyNameless.Types: instance (Rep p1[a1eLi], Rep p2[a1eLj]) => Rep (Rebind p1[a1eLi] p2[a1eLj])
- Unbound.LocallyNameless.Types: instance (Rep p1[a1eLi], Rep p2[a1eLj], Sat (ctx[a1ePE] p1[a1eLi]), Sat (ctx[a1ePE] p2[a1eLj])) => Rep1 ctx[a1ePE] (Rebind p1[a1eLi] p2[a1eLj])
- Unbound.LocallyNameless.Types: instance (Rep p[a1eLe], Sat (ctx[a1ePo] p[a1eLe])) => Rep1 ctx[a1ePo] (Shift p[a1eLe])
- Unbound.LocallyNameless.Types: instance (Rep p[a1eLh], Sat (ctx[a1ePw] p[a1eLh])) => Rep1 ctx[a1ePw] (Rec p[a1eLh])
- Unbound.LocallyNameless.Types: instance (Rep p[a1eLk], Rep t[a1eLl]) => Rep (Bind p[a1eLk] t[a1eLl])
- Unbound.LocallyNameless.Types: instance (Rep p[a1eLk], Rep t[a1eLl], Sat (ctx[a1ePZ] p[a1eLk]), Sat (ctx[a1ePZ] t[a1eLl])) => Rep1 ctx[a1ePZ] (Bind p[a1eLk] t[a1eLl])
- Unbound.LocallyNameless.Types: instance (Rep t[a1eLf], Sat (ctx[a1ePR] t[a1eLf])) => Rep1 ctx[a1ePR] (Embed t[a1eLf])
- Unbound.LocallyNameless.Types: instance Rep p[a1eLe] => Rep (Shift p[a1eLe])
- Unbound.LocallyNameless.Types: instance Rep p[a1eLh] => Rep (Rec p[a1eLh])
- Unbound.LocallyNameless.Types: instance Rep t[a1eLf] => Rep (Embed t[a1eLf])
+ Unbound.LocallyNameless.Fresh: instance [overlap ok] MonadFix m => MonadFix (FreshMT m)
+ Unbound.LocallyNameless.Fresh: instance [overlap ok] MonadFix m => MonadFix (LFreshMT m)
+ Unbound.LocallyNameless.Types: instance (Rep p1[a1eRo], Rep p2[a1eRp]) => Rep (Rebind p1[a1eRo] p2[a1eRp])
+ Unbound.LocallyNameless.Types: instance (Rep p1[a1eRo], Rep p2[a1eRp], Sat (ctx[a1eVK] p1[a1eRo]), Sat (ctx[a1eVK] p2[a1eRp])) => Rep1 ctx[a1eVK] (Rebind p1[a1eRo] p2[a1eRp])
+ Unbound.LocallyNameless.Types: instance (Rep p[a1eRk], Sat (ctx[a1eVu] p[a1eRk])) => Rep1 ctx[a1eVu] (Shift p[a1eRk])
+ Unbound.LocallyNameless.Types: instance (Rep p[a1eRn], Sat (ctx[a1eVC] p[a1eRn])) => Rep1 ctx[a1eVC] (Rec p[a1eRn])
+ Unbound.LocallyNameless.Types: instance (Rep p[a1eRq], Rep t[a1eRr]) => Rep (Bind p[a1eRq] t[a1eRr])
+ Unbound.LocallyNameless.Types: instance (Rep p[a1eRq], Rep t[a1eRr], Sat (ctx[a1eW5] p[a1eRq]), Sat (ctx[a1eW5] t[a1eRr])) => Rep1 ctx[a1eW5] (Bind p[a1eRq] t[a1eRr])
+ Unbound.LocallyNameless.Types: instance (Rep t[a1eRl], Sat (ctx[a1eVX] t[a1eRl])) => Rep1 ctx[a1eVX] (Embed t[a1eRl])
+ Unbound.LocallyNameless.Types: instance Rep p[a1eRk] => Rep (Shift p[a1eRk])
+ Unbound.LocallyNameless.Types: instance Rep p[a1eRn] => Rep (Rec p[a1eRn])
+ Unbound.LocallyNameless.Types: instance Rep t[a1eRl] => Rep (Embed t[a1eRl])
- Unbound.LocallyNameless: rBind :: (Rep p[a1eLk], Rep t[a1eLl]) => R (Bind p[a1eLk] t[a1eLl])
+ Unbound.LocallyNameless: rBind :: (Rep p[a1eRq], Rep t[a1eRr]) => R (Bind p[a1eRq] t[a1eRr])
- Unbound.LocallyNameless: rEmbed :: Rep t[a1eLf] => R (Embed t[a1eLf])
+ Unbound.LocallyNameless: rEmbed :: Rep t[a1eRl] => R (Embed t[a1eRl])
- Unbound.LocallyNameless: rRebind :: (Rep p1[a1eLi], Rep p2[a1eLj]) => R (Rebind p1[a1eLi] p2[a1eLj])
+ Unbound.LocallyNameless: rRebind :: (Rep p1[a1eRo], Rep p2[a1eRp]) => R (Rebind p1[a1eRo] p2[a1eRp])
- Unbound.LocallyNameless: rRec :: Rep p[a1eLh] => R (Rec p[a1eLh])
+ Unbound.LocallyNameless: rRec :: Rep p[a1eRn] => R (Rec p[a1eRn])
- Unbound.LocallyNameless: rShift :: Rep p[a1eLe] => R (Shift p[a1eLe])
+ Unbound.LocallyNameless: rShift :: Rep p[a1eRk] => R (Shift p[a1eRk])
- Unbound.LocallyNameless.Types: rBind :: (Rep p[a1eLk], Rep t[a1eLl]) => R (Bind p[a1eLk] t[a1eLl])
+ Unbound.LocallyNameless.Types: rBind :: (Rep p[a1eRq], Rep t[a1eRr]) => R (Bind p[a1eRq] t[a1eRr])
- Unbound.LocallyNameless.Types: rEmbed :: Rep t[a1eLf] => R (Embed t[a1eLf])
+ Unbound.LocallyNameless.Types: rEmbed :: Rep t[a1eRl] => R (Embed t[a1eRl])
- Unbound.LocallyNameless.Types: rRebind :: (Rep p1[a1eLi], Rep p2[a1eLj]) => R (Rebind p1[a1eLi] p2[a1eLj])
+ Unbound.LocallyNameless.Types: rRebind :: (Rep p1[a1eRo], Rep p2[a1eRp]) => R (Rebind p1[a1eRo] p2[a1eRp])
- Unbound.LocallyNameless.Types: rRec :: Rep p[a1eLh] => R (Rec p[a1eLh])
+ Unbound.LocallyNameless.Types: rRec :: Rep p[a1eRn] => R (Rec p[a1eRn])
- Unbound.LocallyNameless.Types: rShift :: Rep p[a1eLe] => R (Shift p[a1eLe])
+ Unbound.LocallyNameless.Types: rShift :: Rep p[a1eRk] => R (Shift p[a1eRk])
Files
- Unbound/LocallyNameless/Fresh.hs +2/−2
- unbound.cabal +1/−1
Unbound/LocallyNameless/Fresh.hs view
@@ -82,7 +82,7 @@ -- still globally unused, and increments the index every time it is -- asked for a fresh name. newtype FreshMT m a = FreshMT { unFreshMT :: St.StateT Integer m a } - deriving (Functor, Applicative, Monad, St.MonadState Integer, MonadPlus, MonadIO) + deriving (Functor, Applicative, Monad, St.MonadState Integer, MonadPlus, MonadIO, MonadFix) -- | Run a 'FreshMT' computation (with the global index starting at zero). runFreshMT :: Monad m => FreshMT m a -> m a @@ -182,7 +182,7 @@ -- avoid, and when asked for a fresh one will choose the first numeric -- prefix of the given name which is currently unused. newtype LFreshMT m a = LFreshMT { unLFreshMT :: ReaderT (Set AnyName) m a } - deriving (Functor, Applicative, Monad, MonadReader (Set AnyName), MonadIO, MonadPlus) + deriving (Functor, Applicative, Monad, MonadReader (Set AnyName), MonadIO, MonadPlus, MonadFix) -- | Run an 'LFreshMT' computation in an empty context. runLFreshMT :: LFreshMT m a -> m a
unbound.cabal view
@@ -1,5 +1,5 @@ name: unbound-version: 0.2.1+version: 0.2.2 license: BSD3 license-file: LICENSE build-type: Simple