packages feed

bluefin-internal 0.4.3.0 → 0.5.0.0

raw patch · 4 files changed

+13/−10 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Bluefin.Internal.Prim: runPrim :: forall (es :: Effects) r. (forall (e :: Effects). () => Prim e -> Eff (e :& es) r) -> Eff es r
- Bluefin.Internal.Prim: primitive :: forall (e1 :: Effects) (es :: Effects) (e2 :: Effects) a. (e1 :> es, e2 :> es) => Prim e1 -> (State# (PrimStateEff e2) -> (# State# (PrimStateEff e2), a #)) -> Eff es a
+ Bluefin.Internal.Prim: primitive :: forall (e1 :: Effects) (es :: Effects) a. e1 :> es => Prim e1 -> (State# (PrimStateEff e1) -> (# State# (PrimStateEff e1), a #)) -> Eff es a

Files

CHANGELOG.md view
@@ -1,3 +1,7 @@+# 0.5.0.0++* Fix dodgy `Bluefin.Primitive.Internal.primitive` implementation+ # 0.4.3.0  * Add `Bluefin.Internal.GadtEffect`
bluefin-internal.cabal view
@@ -1,6 +1,6 @@ cabal-version:      3.0 name:               bluefin-internal-version:            0.4.3.0+version:            0.5.0.0 license:            MIT license-file:       LICENSE author:             Tom Ellis
src/Bluefin/Internal/Prim.hs view
@@ -10,12 +10,6 @@ import GHC.Exts (State#) import Unsafe.Coerce (unsafeCoerce) --- I suppose morally this is------   (State# (PrimStateEff e) -> (# State# (PrimStateEff e), a #))------ but since there can only be one valid implementation it doesn't--- seem worth doing it like that. data Prim (e :: Effects) = UnsafeMkPrim   deriving Handle via OneWayCoercibleHandle Prim @@ -24,10 +18,16 @@ instance (e :> es) => OneWayCoercible (Prim e) (Prim es) where   oneWayCoercibleImpl = unsafeOneWayCoercible +runPrim ::+  (forall e. Prim e -> Eff (e :& es) r) ->+  -- | ͘+  Eff es r+runPrim k = makeOp (k UnsafeMkPrim)+ primitive ::-  (e1 :> es, e2 :> es) =>+  (e1 :> es) =>   Prim e1 ->-  (State# (PrimStateEff e2) -> (# State# (PrimStateEff e2), a #)) ->+  (State# (PrimStateEff e1) -> (# State# (PrimStateEff e1), a #)) ->   -- | ͘   Eff es a primitive UnsafeMkPrim = unsafeCoerce (P.primitive @IO)
test/Main.hs view
@@ -4,7 +4,6 @@ module Main (main) where  import Bluefin.Internal-import Bluefin.Internal.DslBuilder import Control.Monad (when) import Data.Foldable (for_) import Test.GeneralBracket (test_generalBracket)