Haskell:如何获取具有多个参数的数据类型的类型(例如`Path a b = ..`

时间:2019-03-18 10:33:23

标签: haskell

我的数据类型为

Path a b = ... 

具有a和b的两种数据类型(所有这些数据类型都有派生(可键入))。有一个值

p = ... : Path A B 

,我需要类型p。我尝试过

t = typeRep p

,但仅获取最后一个类型参数(即B)。有没有办法获取完整类型参数,即Path A B

1 个答案:

答案 0 :(得分:4)

只需使用typeOf而不是typeRep。比较:

typeOf  :: Typeable a =>       a -> TypeRep
typeRep :: Typeable a => proxy a -> TypeRep