gpt4 book ai didi

haskell - 将 Haskell Language Pragma 应用于代码块(而不是整个模块)

转载 作者:行者123 更新时间:2023-12-04 20:28:32 25 4
gpt4 key购买 nike

在 Haskell 中是否可以将语言编译指示应用于代码块,而不是整个文件本身?

例如,我启用 -fwarn-monomorphism-restriction标志,但我有几个文件我真的想禁用这个标志,所以我使用 {-# LANGUAGE NoMonomorphismRestriction #-}在文件的顶部。

但是,我不想将此编译指示应用于整个模块,而是仅将其应用于我认为此警告没有帮助的代码块。我现在能想到的唯一解决方案是将这段代码移动到它自己的文件中,然后导入它

最佳答案

一般来说,没有办法做到这一点,不。

对于这个特定的 pragma,您可以通过给它一个类型签名来禁用单个声明的单态限制。尽管我强烈建议给出完整的签名,但在某些情况下,出于某种原因,这可能是不可取的;在这种情况下,即使是一个充满漏洞的签名也足够了,例如

{-# LANGUAGE PartialTypeSignatures #-}

x :: _ => _
x = (+)

将被推断为类型 Num a => a -> a -> a而不是 Integer -> Integer -> Integer .

关于haskell - 将 Haskell Language Pragma 应用于代码块(而不是整个模块),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51848747/

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