修复区域设置扩展中的类型变量

2024-04-13

鉴于此代码

locale A =
  fixes foo :: "'a"

locale B = A +
  fixes bar :: "'a × 'a"

locale C' = A +
  fixes baz :: "'a"
begin
  sublocale B foo "(foo, baz)".
end

I get

Type unification failed

Failed to meet type constraint:

Term:  (foo, baz) :: 'b × 'a
Type:  'b × 'b

所以看来伊莎贝尔不明白baz and foo应该是同一类型。有没有办法来解决这个问题?


问题出在你的区域设置声明上B and C。声明为B等价于下面的

locale B = A foo for foo +
  fixes bar :: "'a * 'a"

Locales 导入只记住参数的名称,而不记住类型变量的名称。因此,由于您没有指定类型foo,最通用的类​​型B的参数如下:

 foo :: 'b
 bar :: 'a * 'a

您可以使用命令看到这一点print_locale B。同样的情况也发生在 locale 的声明中C.

如果你想拥有相同的类型foo and bar,您必须在区域设置声明中明确连接。有两种方法可以做到这一点。

locale B = A foo
  for foo :: 'a
  +
  fixes bar :: "'a * 'a"

and

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

修复区域设置扩展中的类型变量 的相关文章

  • 泛型编程是多态性的一个例子吗?

    我正在做一项家庭作业 一个项目 其中一个标准是我必须以一种显着提高代码整体质量或功能的方式使用多态性 我做了一个哈希表 如下所示 public class HashTable
  • PHP中虚函数的正确实现?

    在我的工作场所 仅限 php 我们有一个数据库抽象的基类 当您想要将新的数据库表添加到基础层时 您必须创建该基类的子类并重写一些方法来定义使用该表的单独行为 正常行为应该保持不变 现在我在我们公司见过很多新程序员 他们只是重写默认行为的方法
  • Fortran 指针多态性

    我正在尝试使用指针在对象之间创建链接 使用 Fortran 下面是代码片段 module base pars module type abstract public base pars end type end module module
  • 如何从投影类型推断正确的类型参数?

    我在让 Scala 从类型投影推断正确的类型时遇到一些麻烦 考虑以下 trait Foo type X trait Bar extends Foo type X String def baz F lt Foo x F X Unit 然后以下
  • 用多态性替换条件式

    我试图通过一个例子来理解这种干净的代码实践 考虑具有折扣开关盒的类产品 我正在尝试用多态性替换 switch 语句 代码之前 class Product String priceCode int discount Product Strin
  • 多态性和数组指针[重复]

    这个问题在这里已经有答案了 我有一个A类 class A public virtual double getValue 0 还有B类 class B public A public virtual double getValue retur
  • 确定性时的虚函数开销 (c++)

    我知道虚拟函数本质上是包含在 vtable 中的函数指针 这使得多态调用由于间接等原因而变慢 但我想知道当调用是确定性时编译器的优化 我所说的确定性是指以下情况 该对象是一个值而不是引用 因此不可能存在多态性 struct Foo virt
  • Haskell 中的异构多态性(正确方法)

    让一个模块来抽象Area操作 错误的定义 class Area someShapeType where area someShapeType gt Float module utilities sumAreas Area someShape
  • C++ 多态加载/保存

    我正在保存并重新加载一堆从公共基础派生的不同对象到一个文件 显然我需要存储类名 或类似的名称 以便在重新加载时创建正确的对象类型 保存很简单 class Base virtual string className const 0 void
  • 调用基本方法而不是覆盖方法

    在 C 中 类A包含一个公共方法Foo 它进行一些处理并返回一个值 protected method Bar 也在课堂上A执行与以下相同的逻辑Foo 然后进行一些额外的处理 然后返回一个值 为了避免重复代码 Bar calls Foo 并使
  • C#/.NET 3.5:转换扩展通用列表的对象

    我通过带有返回接口类型的方法的外观公开 API 并且在 C NET 3 5 中遇到了通用列表和继承的问题 我有两个接口 IMyList 实现 IList IMyItem 和三个类 MyList 实现 IMyList 扩展 List MyOt
  • 创建指向类对象的指针数组

    问题 创建一个至少包含四个指向 Reader 对象的指针的数组 使用 New 运算符创建至少四个指向派生类对象的指针并将它们分配给数组 我不确定我做对了还是错了 Reader 是基类 John David Daniel Mark 是派生类
  • 在 Yii2 中从数据库中多态查找模型

    我在数据库 mysql 中有一张表 但该表存储了几种略有不同类型的行 类型取决于此表的type柱子 我有一个表的抽象 ActiveRecord 类和几个后代子类 它们为不同类型的同一表的行实现略有不同的逻辑 现在我正在为所有类型的行实现更新
  • Swift 中的协议与多态性

    我对面向对象编程相当陌生 我正在尝试了解协议 委托和多态性 我最近观看了一个培训视频 其中宣传当您有两个相似且具有相似方法实现的类时 协议是优雅地实现此目的的最佳解决方案 这就说得通了 然而 一些额外的研究让我发现了多态性 听起来这也是一种
  • Java如何区分这些具有相同名称/签名的多个方法?

    今天我在追踪一个错误 我注意到我们的一个班级中有一些奇怪的事情 我删除了尽可能多的代码并发布在这里 class A static int obtainNumber return 42 static int obtainNumber retu
  • 实体框架中的多态性

    具体类 BankAccount and CreditCard 在控制器上不可见 我被这个问题困扰了 我正在使用该网站的示例 http weblogs asp net manavi archive 2010 12 28 inheritance
  • void* 指针的 C++ 替代品(不是模板)

    看来我对 C 有一个根本性的误解 我喜欢多态容器解决方案 谢谢你让我注意到这一点 所以 我们需要创建一个相对通用的容器类型对象 它还恰好封装了一些业务相关的逻辑 然而 我们需要在这个容器中存储基本上任意的数据 从原始数据类型到复杂类的所有数
  • Isabelle 错误无法更新完成的理论“HOL.Finite_Set”是什么意思?

    我正在尝试使用该理论Finite Set thy但是当我导入它时 imports ISABELLE HOME SRC HOL Finite Set 我正在研究的理论尚未解析 当我打开理论本身时 我收到以下错误 无法更新已完成的理论 HOL
  • 函数和多态性中的默认参数[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 虚拟 typedef 的替代方案

    我有一个用于 List Array 和 Dictionary 模板类的接口 IEnumerable 我希望使用 typedef 来获取他们的模板类型 T 我希望能够做到以下几点 class IEnumerable public virtua

随机推荐

  • 禁用 FlipView 上的导航

    我想禁用我的所有导航FlipView 水平滚动 来自用户的输入 例如鼠标滚轮和触摸屏 Flipview 应该以编程方式更改其选定索引的唯一方法 我已经删除了FlipView的风格 我尝试改变一些ScrollViewer其风格的属性 但我无法
  • 在构建语义 Web 应用程序时,OWL 是如何实际使用的?

    我一直在阅读有关语义 Web 技术 例如 RDF 和 OWL 的内容 并且对在现有关系数据库之上构建 RDF 三重存储语义数据库的可能性很感兴趣 这只是一项研发活动 看看我能做什么 我喜欢的样子OWLIM http www ontotext
  • 使用 Autodesk Forge API 检索“描述”或“自定义属性”字段

    我们正在尝试使用 Autodesk Forge API 请求 命令检索 BIM360 文档中所示的描述或自定义属性字段 我们尝试了以下请求来检索有关特定文件的信息 https forge autodesk com en docs data
  • 如何确定 REST api 中的请求来自何处

    我有一个带有控制器的 RESTful API 当我的 Android 应用程序点击它时 它应该返回一个 JSON 响应 当它被 Web 浏览器点击时 它应该返回一个 视图 我什至不确定我是否以正确的方式处理这个问题 我正在使用 Larave
  • HttpContext.Authentication.SignOutAsync 不会删除身份验证 cookie

    根据 ASP NET Core文档 https learn microsoft com en us aspnet core security authentication cookie方法HttpContext Authentication
  • 在 C# 中使用 Moq 进行模拟

    我有以下代码 public interface IProductDataAccess bool CreateProduct Product newProduct Class ProductDataAccess实现该接口 public cla
  • 使用 JavaScript 获取资源的传输大小

    我正在尝试测量真实网站用户的页面加载性能 为了更好地理解数据 我想根据缓存是否已启动来对数据进行分段 因此 在加载资源之前我不需要知道它是否在缓存中 事后衡量就足够了 至少在 Chrome 和 Firefox 中 开发工具的 网络 选项卡有
  • 当鼠标悬停在一个列表元素上时,jQuery 使其他列表元素淡入淡出/变暗,我在那里 90%..?

    我有一个无序列表 其中可能有 30 项 当将鼠标悬停在其中一项上时 其余列表项会淡出至 30 而悬停的项目将保持 100 当你离开列表时 它们都会恢复到 100 我已经做到了 当您从一个项目移动到另一个项目时 我的问题就出现了 其他列表项目
  • 删除 WSO2 1.10.0 中的弱化协议

    我有一个答案 可以禁用 Tomcat 中管理控制台不需要的协议 密码 基于 TLSv1 0 和 3DES 的密码 端口 9443 禁用 WSO2AM 1 10 0 中的弱化协议 密码 https stackoverflow com ques
  • SAS SQL 传递

    我想知道在这段代码中 SAS SQL 传递中首先执行的是什么 Connect To OLEDB As MYDB DBConnect Catalog MYDB Create table MYDB extract as select put P
  • JVM 语言中的嵌套函数和词法作用域是如何编译的?

    作为我的问题的具体示例 这里有一个 Python 代码片段 它应该对最广泛的人来说是可读的 并且无论如何都有 JVM 实现 def memo f cache def g args if args not in cache cache arg
  • 如何使用 pyplot 在曲面图后面画一条线

    我想在用曲面图绘制的圆环内画一条线 这条线在圆环内部不应该是可见的 就像圆环的内侧一样 只能在圆环的 末端 看到 我切掉了圆环的一半 然而 我绘制的线随处可见 正如您在图中看到的那样 我使用了以下代码 import numpy as np
  • Windows XP 上 WPD/WIA 的替代品?

    WPD http www microsoft com whdc device wpd default mspx在 Windows XP SP1 如果重要的话 上无法正常工作 即使微软表示确实如此 http msdn microsoft co
  • 延迟加载 WPF 选项卡内容

    我的 WPF 应用程序被组织为 TabControl 每个选项卡包含不同的屏幕 一个 TabItem 绑定到需要一点时间加载的数据 由于此 TabItem 代表用户可能很少使用的屏幕 因此我希望在用户选择该选项卡之前不加载数据 我怎样才能做
  • Android:应用程序范围内的字体大小首选项

    是否可以对所有显示文本的视图使用的字体大小进行应用程序范围的设置 我想向用户提供一个首选项 该首选项应该允许缩放应用程序中的所有文本 Android 明确允许使用 sp 尺寸单位 http developer android com gui
  • 将 JSON 字符串存储在输入字段值中

    如何将 Json 字符串存储在隐藏的输入字段中 好吧 我可以通过编程来做到这一点 但是转义有问题 由于我的字符串相当长 因此很难对所有名称转义 char 请解释它如何以编程方式工作 第 1 阶段 因为控制台输出看起来相同 X 0 Y 0 W
  • 将 Azure Files 文件夹挂载到 Kubernetes 中?

    As 直接安装 https learn microsoft com en us azure aks azure files volume or 持久卷声明 https learn microsoft com en us azure aks
  • AWS API Gateway 限制未按预期工作

    我正在尝试启用 API 网关限制 但它没有按预期工作 我将默认方法限制速率设置为每秒 1 个请求 并将突发设置为 1 个请求 然后 我在代码中创建了一个循环 向我的 API 端点同时发出 10 个请求 for let i 0 i lt 10
  • 如何使用 FlexJSON 序列化 Map>

    我有一个想要序列化为 JSON 的对象 该对象是一个包含特定对象列表的地图 这看起来与它相似 Map
  • 修复区域设置扩展中的类型变量

    鉴于此代码 locale A fixes foo a locale B A fixes bar a a locale C A fixes baz a begin sublocale B foo foo baz end I get Type