reflection 0.3.1 → 0.3.2
raw patch · 2 files changed
+8/−7 lines, 2 files
Files
- Data/Reflection.hs +7/−6
- reflection.cabal +1/−1
Data/Reflection.hs view
@@ -160,9 +160,9 @@ instance ReifiesStorable s => Reifies (Stable s a) a where reflect = r where r = unsafePerformIO $ do- pure <$> deRefStablePtr p <* freeStablePtr p-- p = pointer reflectStorable r+ pure <$> deRefStablePtr (pointer reflectStorable r)+ -- pure <$> deRefStablePtr p <* freeStablePtr p+ -- p = pointer reflectStorable r pointer :: Tagged (s' p) p -> Tagged (Stable s' a') a' -> p pointer (Tagged a) _ = a@@ -171,11 +171,12 @@ reify :: a -> (forall s. Reifies s a => Tagged s w) -> w reify a k = unsafePerformIO $ do p <- newStablePtr a- reifyStorable p (stable (reflect `before` (return <$> k)))+ -- reifyStorable p (stable (reflect `before` (return <$> k)))+ reifyStorable p (stable (return <$> k)) where stable :: Retag (s' (StablePtr a')) (Stable s' a') stable = retag- before :: Tagged (s' a') a' -> Tagged (s' a') r -> Tagged (s' a') r- before = seq+ -- before :: Tagged (s' a') a' -> Tagged (s' a') r -> Tagged (s' a') r+ -- before = seq {-# NOINLINE reify #-}
reflection.cabal view
@@ -1,5 +1,5 @@ name: reflection-version: 0.3.1+version: 0.3.2 license: BSD3 license-file: LICENSE author: Edward A. Kmett, Oleg Kiselyov and Chung-chieh Shan