gpt4 book ai didi

haskell - 类型文字用法

转载 作者:行者123 更新时间:2023-12-04 14:44:37 24 4
gpt4 key购买 nike

我试图了解haskell 类型文字的用法。特别是,我想我会写一个函数来显示自定义类型的类型文字

newtype Fixed (p :: Nat) a = Fixed a

instance (KnownNat p) => Show (Fixed p a) where
show _ = show $ natVal (Proxy::Proxy p)

但是,ghc (7.8) 无法推断出 KnownNat n0,这意味着我并没有像我认为的那样限制事物。谁能提出什么问题?

最佳答案

您需要-XScopedTypeVariables让 GHC 认识到 p您的Proxy pp 相同您的类型签名。

{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE ScopedTypeVariables #-}
import Data.Proxy
import GHC.TypeLits

newtype Fixed (p :: Nat) a = Fixed a

instance (KnownNat p) => Show (Fixed p a) where
show _ = show $ natVal (Proxy::Proxy p)

关于haskell - 类型文字用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25183790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com