COMPLETE pragma 不会阻止不完整模式警告

2024-04-15

我为类似列表的类制作了两个模式视图。

infixr 5 :<
pattern (:<) :: Stream s => Token s -> s -> s
pattern b :< bs <- (uncons -> Just (b, bs))
  where b :< bs = cons b bs

pattern Nil :: Stream s => s
pattern Nil <- (uncons -> Nothing)
  where Nil = empty

uncons签名:uncons :: (Stream s) => s -> Maybe (Token s, s).

假设我还有使用这些模式的函数,如下所示:

foo (b:<bs) = …
foo Nil = …

很明显,在这种情况下,模式匹配是详尽的,我想指出这一点。

所以我尝试使用完整的编译指示 https://gitlab.haskell.org/ghc/ghc/wikis/pattern-synonyms/complete-sigs像那样:{-# COMPLETE Nil, (:<) :: Stream #-}.

那不起作用,警告没有任何作用。为什么没有呢?可以做我想做的事吗?


COMPLETE编译指示只能附加到类型,而不能附加到类型类。目前还没有办法指定适用于给定类的所有类型的完整模式集。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

COMPLETE pragma 不会阻止不完整模式警告 的相关文章

随机推荐

  • IIS,拒绝访问静态文件;这个例子有什么问题吗?

    我试图获取默认情况下允许访问的最简单示例 除非通过 IIS 中特定目录的身份验证 否则拒绝访问 当你谷歌周围时 每个人都说这很简单
  • 在中等信任度下以编程方式修改配置部分

    我的应用程序中有一个自定义 ConfigurationSection public class SettingsSection ConfigurationSection ConfigurationProperty Setting publi
  • 以特定方式排列数据框

    提前抱歉 标题不好 但我真的不知道如何简洁地表达它 我正在使用一个数据框 其中的项目可以属于 4 个类别中的任何一个 而不限于 1 个类别 这是我正在使用的虚拟矩阵的示例 ID lt 1 7 A lt c 1 0 0 1 1 0 0 B l
  • C++ 中的转换运算符

    请帮助我了解 C 中的转换运算符到底是如何工作的 我在这里有一个简单的例子 我试图理解它 尽管编译器实际上是如何进行转换的并不是很清楚 class Example public Example Example int val operato
  • 使用PHP动态添加到.htaccess文件?

    我想做的是自动化网站上线的过程 这些网站都是使用htaccess动态创建的 所以这里是一个例子 RewriteCond ENV REDIRECT STATUS RewriteCond HTTP HOST www domain com NC
  • 使用 biml 分配属性以执行包任务 ssis 对象

    使用 biml 通过 Visual Studio 中的 BIDS 帮助程序 如何为 SSIS 2008 执行包任务对象的属性赋值 特别是 位置 SQL Server 连接 SomeConnectionString 使用 BIML 我已经搜索
  • 如何修复 Android studio 中调用失败来自服务器的意外响应:未经授权

    我有一个项目Gitlab https gitlab com我最近几天一直在用它 现在我想要pull在我的家用电脑上进行项目 但显示以下错误 Invocation failed Unexpected Response from Server
  • 如何在for循环中添加不同大小的numpy数组条目(类似于Matlab的元胞数组)?

    我正在尝试在 python numpy 中实现 Matlab 元胞数组的模拟 Matlab 代码如下 for n 1 10 C n rand 1 n end 请注意 每个单元格元素都有不同的长度 现在在 numpy 中 for n in n
  • 来自 scatter3 数据的 matlab 3d 曲面图

    我想在同一个图上绘制带有曲面图的 3d 散点图 这样我最终会得到如下结果 我本以为下面的代码可能已经实现了我想要的 但显然没有 我有x y and z绘制数据scatter3 x 1 1 1 1 0 95 0 95 0 95 0 95 0
  • 在 Javascript 中添加和减去字符串和数字 - 自动类型转换?

    让我们看一下下面的 JavaScript 代码 在第一个警报框中 显示 2 和 8 串联的结果 即28 然而 在第二个警报框中 它显示两个数字的减法 即6 How The 运算符超载 如果任何操作数是字符串 则执行字符串连接 如果有两个数字
  • Windows.h - 焦点进入文本输入时的通知

    我正在尝试提出一种解决方案 用于在焦点进入文本字段时设置通知 最终目标是通过屏幕键盘重新创建您在移动设备上看到的功能类型 到目前为止我一直在探索SetWinEventHook with EVENT OBJECT FOCUS and GetG
  • 实现领域驱动设计的函数式方法

    我在使用 C 编写领域驱动应用程序方面拥有丰富的经验 我编写的应用程序越多 我就越发现我想要采用一种不太适合标准 C OO 技术的方法 我想编写尽可能多的纯函数 因为它们真的很容易测试 我想以更具声明性的方式编写我的业务逻辑 所以我一直在研
  • Java/MSSQL:java.sql.SQLException 无效的对象名称“TableName”

    我正在尝试将 java 应用程序从旧服务器移动到新服务器 该应用程序在 Tomcat 上运行 使用 Microsoft SQL Server 作为后端数据库 并使用数据源 ODBC 中定义的系统 DSN 来决定连接到哪里 旧服务器使用Win
  • 调用 SWIG 生成的 JNI 时出现 UnsatisfiedLinkError?

    我正在尝试创建一个可从 Java 调用的 C 动态库 我在下面编译了一个DLLCygwin http www cygwin com using SWIG http www swig org Doc1 3 Java html compilin
  • Ember 路由、控制器、视图

    我已阅读 Ember js 网站上的大部分初学者指南 但我仍然对放置内容的正确位置感到困惑 Route 根据在线研究 人们建议将与路由相关的逻辑放入路由中 一切都很好 但我唯一能想到的是this transisionTo 我在其他地方读到所
  • Asp.net 超链接控件相当于

    我想在 asp net 中定义一个 HyperLink 控件 它生成类似于以下内容的 html 输出 a href a 如何才能做到这一点 我同意 SLAks 的观点 但你就这样吧
  • 苹果推送通知限制

    我想知道我们一次向用户发送的苹果推送通知的数量是否有限制 我可以使用 APNS 服务一次发送 100 000 个推送通知吗 如果您在短时间内向同一设备发送多个通知 推送服务将仅发送最后一个通知 https developer apple c
  • 如何使用第三方网络服务避免代码重复 - 不使用动态?

    我正在使用第三方网络服务 其所有方法都具有以下签名 SomeResponseClass SomeMethod SomeRequestClass request 每个方法都有自己的请求类和响应类 但是所有请求和所有响应都有一些共同点 每个请求
  • 是否有在导航栏添加相同的滚动菜单栏?

    我已经再次发布了我的这个问题 但我还没有得到完美的答案 在这里我将再次解释我的问题 这对我来说非常重要 所以不惜一切代价我必须解决它 现在我的问题是 假设我有 4 个tabbaritem in a tabbarController以及项目
  • COMPLETE pragma 不会阻止不完整模式警告

    我为类似列表的类制作了两个模式视图 infixr 5 lt pattern lt Stream s gt Token s gt s gt s pattern b lt bs lt uncons gt Just b bs where b lt