我的数据类型为
Path a b = ...
具有a和b的两种数据类型(所有这些数据类型都有派生(可键入))。有一个值
p = ... : Path A B
,我需要类型p
。我尝试过
t = typeRep p
,但仅获取最后一个类型参数(即B)。有没有办法获取完整类型参数,即Path A B
?
答案 0 :(得分:4)
只需使用typeOf
而不是typeRep
。比较:
typeOf :: Typeable a => a -> TypeRep
typeRep :: Typeable a => proxy a -> TypeRep