Haskell——如何在同一个文件中使用多个模块?

2024-02-03

抱歉,这是一个愚蠢的问题,但我无法弄清楚如何将多个模块放在同一个文件中。假设文件名为A.hs。如果我把模块B首先,即

module B where ...
module A where ...

它抱怨说它期望A当我运行“ghci A”时(它不是顶级的,所以我不想调用“ghci A.hs”)。相反,它会抱怨“输入模块上的解析错误”)。

这里有一个相关的错误,http://hackage.haskell.org/trac/ghc/ticket/2428 http://hackage.haskell.org/trac/ghc/ticket/2428。即使其他模块仅在本地使用,实际上是否没有办法得到这个?


同一文件中不能有多个模块。您链接到的错误只是关于 GHC 给出的错误消息并不清楚这一点。

但是,如果您使用 Cabal,您仍然可以通过将您希望用户可见的模块放在Exposed-Modules部分,并将任何内部模块放入Other-Modules.

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

Haskell——如何在同一个文件中使用多个模块? 的相关文章

  • 如何获取常量内存中的统计数据

    我有一个函数 它会创建一些随机的数值结果 我知道 结果将是 a 小 a b 约 50 范围内的整数a b 我想创建一个执行上述函数 1000000 次的函数 并计算每个结果出现的频率 该函数使用随机生成器来生成结果 问题是 我不知道如何在常
  • 为什么haskell中的递归列表这么慢?

    我对 Haskell 很陌生 我在 Haskell 中定义了一个函数 febs Integral a gt a gt a febs n n lt 0 0 n 1 1 n 2 1 otherwise febs n 1 febs n 2 但是
  • 我应该使用镜头中的什么来按索引构建只读吸气剂?

    我有一个内部细节被隐藏的类型 我想提供某种镜头 可以在特定索引处读取所述类型的元素 但是not修改它们 一个Ixed我的类型的实例似乎没有做我想要的事情 因为它明确允许修改 尽管不允许插入或删除 如果我想允许只读索引 我不确定我使用什么 如
  • 处理许多不相关的类型时避免样板

    我正在编写处理以下值的代码语言 扩展 注释 语法 http hackage haskell org packages archive haskell src exts 1 1 4 doc html Language Haskell Exts
  • Haskell 测量函数性能

    在 Haskell 中 我如何 简单地 测量函数的性能 例如 运行需要多长时间 或者需要多少内存 我知道分析 但是 是否有一种更简单的方法不需要我对代码进行太多更改 测量运行需要多长时间以及需要多少内存是两个独立的问题 即 基准测试和分析
  • 为所有用户持久安装 PowerShell 模块

    我正在通过以下方式安装 PowerShell 模块八达通部署 http octopusdeploy com 到许多不同的服务器上 出于测试目的 我按照 Microsoft 文档的指导进行了安装PowerShell模块 https learn
  • 存在函数依赖关系时类型推断如何工作

    考虑下面的代码 LANGUAGE MultiParamTypeClasses FlexibleInstances FunctionalDependencies UndecidableInstances FlexibleContexts cl
  • 反应性香蕉时间延迟

    我已经查阅了文档反应香蕉 http hackage haskell org package reactive banana 而且我找不到指定明确时间延迟的方法 举例来说 我想采取Event t a并将其所有发生的事件移至未来 1 秒 或获取
  • 在 Haskell 命令行应用程序中提示输入密码

    以下 Haskell 程序提示用户在终端中输入密码 如果输入正确则继续 main do putStrLn Password password lt getLine case hash password member database of
  • 嵌套在其他 monad 中的 IO 操作未执行

    我有一个 foobar IO ParseResult String String ParseResult 是一个在这里定义的 monad https hackage haskell org package haskell src exts
  • 管道中缺少 ResourceT 实例

    我在尝试使用时遇到奇怪的错误ResourceT http hackage haskell org package conduit 1 0 9 1 docs Data Conduit html t 3aResourceT来自管道 1 0 9
  • Haskell 和 Idris 之间的区别:类型宇宙中运行时/编译时的反映

    因此 在 Idris 中 编写以下内容是完全有效的 item b Bool gt if b then Nat else List Nat item True 42 item False 1 2 3 cf https www youtube
  • 类型级编程有哪些示例? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我不明白 类型级编程 是什么意思 也无法使用Google找到合适的解释 有人可以提供一个演示类型级编程的示例吗 范式的解释和 或定义将
  • Parsec 函数“parse”和类“Stream”的类型签名

    约束条件是什么 Stream s Identity t 下面的类型声明是什么意思 parse Stream s Identity t gt Parsec s a gt SourceName gt s gt Either ParseError
  • 如何处理或避免BlockedIndefinitelyOnSTM异常?

    我花了很多时间来解决我正在处理的应用程序中遇到的问题 该应用程序是一个 Web 应用程序 使用 scotty 公开 REST 端点 它使用一个TVar保持其更新的状态STM a由前端层触发的动作 由于该应用程序基于事件溯源原则 因此业务层生
  • 安装 python 3 的包

    我倾向于在 Jupyter 笔记本中运行我的代码 这些代码在 python 3 中运行 我的计算机上也有 python 2 我安装了pip3所以我可以专门为 python 3 安装软件包 但这似乎不适合我 mba pip3 install
  • 为什么我的 Haskell 断言只发生在 IHaskell 中?

    如果我定义 import Control Exception assert import Data Char ord f String gt String f s assert all elem letters s letters lt g
  • 不明白这个 haskell 代码中的内容

    我有一些 Haskell 代码 我正在尝试完成它 但我不明白其中发生了什么 type Bag a a gt Int emptyB Bag a emptyB e gt 0 countB Eq a gt Bag a gt a gt Int co
  • 仅当我在 Windows 上时,如何有条件地使用 Perl 模块?

    以下 Perl 代码 if O eq MSWin32 use Win32 do windows specific stuff 在Windows下工作 但无法在所有其他平台下运行 无法在 INC中找到Win32 pm 如何指示 Perl 仅在
  • `arr fst` 是如何自然变换的?

    I asked 这个问题 https stackoverflow com q 62733726 11143763不久以前 这是关于以下箭头定律 arr fst first f f arr fst Category k gt k b c gt

随机推荐

  • 在 C++/CX 中解析 JSON ISO8601 日期

    我有一个来自 JSON 2012 08 01T15 42 06Z 的日期字符串 并且想要在 Windows 运行时中解析它 据我所知 只有COle日期时间可以处理这个问题 当我取出 T 和 Z 字符时 我只能让它正确解析字符串 但这增加了一
  • Pycharm - 在远程解释器中配置 PYTHONPATH

    我在 Windows 上安装了 PyCharm 2 7 3 并且正在尝试在 Linux 计算机上远程开发应用程序 到目前为止 我可以运行简单的程序 但是我正在尝试设置我的 PYTHONPATH 并且 PyCharm 似乎特别忽略了此配置 在
  • 获取 Windows Phone 上 ScrollViewer 的滚动事件

    问题 获取 Windows Phone 上 ScrollViewer 的滚动事件 我有一个像这样的滚动查看器
  • 可以将 crossorigin 属性添加到 Angular cli 生成的脚本标签中吗?

    是否可以将 crossorigin 属性添加到 Angular cli 生成的脚本标签中 运行我的角度应用程序时 脚本标签被添加到我的index html的末尾 是否可以配置 angular cli 以便当这些标签包含在构建 index h
  • 仅从类和接口静态导入

    我的代码在 Eclipse 中编译得很好 但是当我尝试从命令行编译 通过我们基于 ruby 的构建系统 时 我收到以下错误消息 static import only from classes and interfaces 建议不允许静态导入
  • 如何从 WAMP 恢复 MySQL 数据库?

    上个月我不得不重新安装 Windows 并且我已经将WAMP http en wikipedia org wiki WAMP文件夹到另一个分区 现在我再次安装了 WAMP 但我需要旧数据库 如何从安全分区上保存的 WAMP 文件夹中获取旧的
  • 系统托盘应用程序如何在其他平台上完成?

    Windows 有一个 系统托盘 其中包含时钟和始终运行的服务 例如 MSN Steam 等 我想开发一个 wxPython 托盘应用程序 但我想知道它移植到其他平台的效果如何 每个平台上的托盘等效项是什么 以及支持 Windows OSX
  • CGAffineTransformMakeScale 动画不起作用

    我有一个视图控制器 其中有一个视图 在删除它之前 我使用 UIView 动画将其缩小到 0 我的驳回它的代码是 UIView animateWithDuration dismissAnimationDuration delay 0 0 op
  • 如何将 GameLift 与 Unity3d 集成作为游戏客户端

    我正在尝试使用 Unity3d 游戏作为 GameList 客户端 根据GameLift 论坛 https gamedev amazon com forums questions 13771 create client in unity h
  • 如何在绘图中使用多个组,但仅使用定义数量的图例组

    假设我有多个不同细胞的时间序列 我可以根据它们是否接受治疗来分割它们 我如何绘制所有单独的时间序列 不平均 但根据绘图中的治疗对它们进行分组 它与 ggplot 完美配合 我知道我可以从那里使用 ggplotly 但有完整的情节方式吗 以下
  • python 组合范围和数字列表

    range 5 15 1 1 5 6 10 10 10 11 17 28 range 6 24 4 10 10 10 15 16 18 20 24 30 range 7 41 9 18 19 23 23 26 28 40 42 44 ran
  • 获取OpenCV当前的FPS

    我正在编写一个 OpenCV 应用程序 FPS 非常重要 如何计算主循环的处理时间以获得当前和平均 FPS 这样 我就可以知道我的应用程序运行速度有多快 顺便说一句 我在 SSD 上使用 imread 所以处理器是这 里的瓶颈 你可以做这样
  • 单击锚标记时,将 HTML 文本输入的 readonly 属性设置为 false

    My HTML div class profileForm fieldset fieldset div
  • 网关未出现在 jhipster 注册表中

    我已经为网关应用程序创建了一个 docker 映像 但是当我运行命令时 docker compose up只有微服务和注册表是UP的 但网关甚至没有出现在实例中 22 08 25 10 57 23 661 ERROR 1 restarted
  • 强制完全重绘 Jpanel Java2D

    我的问题是 我需要制作一个不断更新的 GUI 因为我从数据库获取可以更改的值 并且在图形区域中遇到了一些问题 我使用 Graphics2D 中的 Drawline 和 Drawstring 打印在数据库中找到的值 这些字符串和线条移动并更改
  • Google脚本DriveApp.getFolders().hasNext()错误

    我想在驱动器中创建一个目录 如果该目录尚不存在 function CreateDirectory var folderName Example var Directory var fi DriveApp getFoldersByName f
  • WEKA 生成的模型似乎无法预测给定属性索引的类别和分布

    Overview 我正在使用 WEKA API 3 7 10 开发者版本 来使用我预制的 model files 我制作了 25 个模型 五种算法的五个结果变量 J48决策树 http weka sourceforge net doc de
  • Magento:(大多数)国家/地区在结账时扣除税费 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我在一家英国时装店工作 客户有一个特
  • 用图像替换 d3.js 符号

    参考这个fiddle example http jsfiddle net andycooper a7as6 我需要用图像替换符号 或者可能首先用单个图像替换 例如 此图像 https github com favicon ico 我在代码中
  • Haskell——如何在同一个文件中使用多个模块?

    抱歉 这是一个愚蠢的问题 但我无法弄清楚如何将多个模块放在同一个文件中 假设文件名为A hs 如果我把模块B首先 即 module B where module A where 它抱怨说它期望A当我运行 ghci A 时 它不是顶级的 所以