2

これは機能します:

{-# LANGUAGE DataKinds, PolyKinds, KindSignatures, GADTs #-}

import GHC.TypeLits

data F :: Symbol -> * where
    F :: F s


unF :: SingI s =>  F s -> String
unF g = fromSing $ s g where
    s :: SingI s => F s -> Sing s
    s _ = sing

val :: F "val"
val = F

main = print $ unF val -->> "val"

ネストされた関数なしで unF を書くことはできますか? 私は一般的にこれを「正しく」行っていますか?

4

0 に答える 0