通常,当我使用 Haskell 代码时,我会使用类型注释和 undefined
将事情 stub 。 .
foo :: String -> Int
foo = undefined
是否有我可以以类似方式使用的类型级“未定义”?
(理想情况下,结合一种注释)
type Foo :: * -> *
type Foo = Undefined
在同一个线程上进一步思考:我有没有办法为以这种方式创建的类型 stub 类型类实例?比以下理论方法更简单的方法?
instance Monad Foo where
return = undefined
(>>=) = undefined
最佳答案
您可以使用 EmptyDataDecls
stub 一个类型,并使用 KindSignatures
你可以给它一种:
{-# LANGUAGE EmptyDataDecls, KindSignatures #-}
data Foo :: * -> *
您也可以 stub
Monad
使用此选项向 GHC 发出警告的实例。{-# OPTIONS_GHC -fno-warn-missing-methods #-}
instance Monad Foo
然后你不需要为
return
留下任何实现。和 >>=
.
关于haskell - 在类型级别未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9036554/