标签: haskell
我可以通过应用{-# LANGUAGE DataKinds #-}将任何代数值构造函数提升为类型。我希望类型降级与升级一样简单且自动化。但是,在给定类型为data Test = A | B | C的情况下,我不能只是fromSing (sing :: Sing 'A),当构造函数似乎在构造单例时,是否有任何理由阻止自动降级?
{-# LANGUAGE DataKinds #-}
data Test = A | B | C
fromSing (sing :: Sing 'A)