ref: d08ab630e62ea0a1e3c709a57ec5cca6a36fe096
parent: 7ecf112fbeeb1e5814fbad231ba8159f22052d19
author: Lennart Augustsson <lennart@augustsson.net>
date: Thu Dec 21 15:53:00 EST 2023
Fix silly bug
--- a/TODO
+++ b/TODO
@@ -44,6 +44,3 @@
* Stratify types/kinds/sorts
- Do kind variables this way 'data forall (k:Kind) . T (a::k) = C'
* Implement polykinds
-* Implement
- - Typeable
- - Generic
--- a/lib/Data/Dynamic.hs
+++ b/lib/Data/Dynamic.hs
@@ -4,6 +4,7 @@
toDyn,
fromDyn, fromDynamic,
dynApply, dynApp,
+ dynTypeRep,
) where
import Prelude
import Data.Proxy
@@ -26,5 +27,8 @@
dynApp f a = fromMaybe (error "Dynamic.dynApp") $ dynApply f a
dynApply :: Dynamic -> Dynamic -> Maybe Dynamic
-dynApply (D ftr f) (D atr a) = fmap f $ funResultTy ftr atr
- where f rtr = D rtr ((unsafeCoerce f) a)
+dynApply (D ftr f) (D atr a) = fmap g $ funResultTy ftr atr
+ where g rtr = D rtr ((unsafeCoerce f) a)
+
+dynTypeRep :: Dynamic -> TypeRep
+dynTypeRep (D tr _) = tr
--
⑨