我想Vec3D从Vec包中导入数据构造函数Data.Vec.Packed.显然,我可以
import Data.Vec.Packed
Run Code Online (Sandbox Code Playgroud)
并且完成了事情,但这不是我想要做的事情,因为这会为目前的范围增加额外的东西.
该Vec3D数据构造被宣布像这样的Data.Vec.Packed模块:
instance PackedVec (Vec3 Double) where
data Packed (Vec3 Double) = Vec3D {-#UNPACK#-} !Double {-#UNPACK#-} !Double {-#UNPACK#-} !Double
...
Run Code Online (Sandbox Code Playgroud)
我试过这个,但它没有编译:
import Data.Vec.Packed (Packed (Vec3 Double)(..))
Run Code Online (Sandbox Code Playgroud)
如何只导入Vec3D数据构造函数?
仅供参考,如果您在ghci中导入模块:
* Data.Vec> :info Vec3D
data instance Packed (Vec3 Double)
= Vec3D {-# UNPACK #-}Double
{-# UNPACK #-}Double
{-# UNPACK #-}Double
-- Defined in ‘Data.Vec.Packed’
type Vec3D = Packed (Vec3 Double) -- Defined in ‘Data.Vec.Packed’
Run Code Online (Sandbox Code Playgroud)
要将构造函数与系列导入捆绑在一起,您可以编写
\n\nimport Data.Vec.Packed (Packed(Vec3D))
在 GHCi 中通过:info Vec3D演示对此进行测试
data instance Packed (Data.Vec.Base.Vec3 Double)\n = Vec3D {-# UNPACK #-}Double\n {-# UNPACK #-}Double\n {-# UNPACK #-}Double\n -- Defined in \xe2\x80\x98Data.Vec.Packed\xe2\x80\x99\nRun Code Online (Sandbox Code Playgroud)\n