@@ -345,6 +345,9 @@ data WrapTypeable f where
345instance Show (WrapTypeable f) where
345instance Show (WrapTypeable f) where
346 show (WrapTypeable (_ :: f a)) = show $ calcFp @a
346 show (WrapTypeable (_ :: f a)) = show $ calcFp @a
348+wrapTypeable :: TypeRep a -> f a -> WrapTypeable f
349+wrapTypeable tr = withTypeable tr WrapTypeable
350prop> fromList . toList == 'id'
353prop> fromList . toList == 'id'
@@ -375,7 +378,7 @@ instance IsList (TypeRepMap f) where
375 toList = map toWrapTypeable . toTriples
378 toList = map toWrapTypeable . toTriples
377 toWrapTypeable :: (Fingerprint, Any, Any) -> WrapTypeable f
380 toWrapTypeable :: (Fingerprint, Any, Any) -> WrapTypeable f
378− toWrapTypeable (_, an, k) = withTypeable (unsafeCoerce k) $ fromAny an
381+ toWrapTypeable (_, an, k) = wrapTypeable (unsafeCoerce k) (fromAny an)
380calcFp :: forall a . Typeable a => Fingerprint
383calcFp :: forall a . Typeable a => Fingerprint
381calcFp = typeRepFingerprint $ typeRep @a
384calcFp = typeRepFingerprint $ typeRep @a