在 GHC 手册中记录通配符示例
Record wildcards example in the GHC manual
GHC手册中说
module M where
data R = R { a,b,c :: Int }
module X where
import M( R(a,c) )
f b = R { .. }
R{..}
扩展为R{M.a=a}
但是我没有看到定义在哪里。此代码如何工作?
我尝试编译模块 X。GHC 说:"Not in scope: data constructor ‘R’"。
该示例的模块 X
似乎有很多问题。看起来他们打算实现类似的目标:
{-# LANGUAGE RecordWildCards #-}
module X where
import M( R(R,a,c) )
f a b = R { .. }
3 个错误:
- 缺少扩展编译指示,
- 缺少类型和数据构造函数的导入方式不同,
- 缺少
a
的任何定义(作为字段选择器除外)。
GHC手册中说
module M where
data R = R { a,b,c :: Int }
module X where
import M( R(a,c) )
f b = R { .. }
R{..}
扩展为R{M.a=a}
但是我没有看到定义在哪里。此代码如何工作?
我尝试编译模块 X。GHC 说:"Not in scope: data constructor ‘R’"。
该示例的模块 X
似乎有很多问题。看起来他们打算实现类似的目标:
{-# LANGUAGE RecordWildCards #-}
module X where
import M( R(R,a,c) )
f a b = R { .. }
3 个错误:
- 缺少扩展编译指示,
- 缺少类型和数据构造函数的导入方式不同,
- 缺少
a
的任何定义(作为字段选择器除外)。