Dan*_*ton 23 haskell types undefined ghc type-kinds
通常当我正在使用Haskell代码时,我会使用类型注释来解决问题undefined
.
foo :: String -> Int
foo = undefined
Run Code Online (Sandbox Code Playgroud)
是否存在类型级别的"未定义",我可以以类似的方式使用它?
(理想情况下,结合一种注释)
type Foo :: * -> *
type Foo = Undefined
Run Code Online (Sandbox Code Playgroud)
在同一个线程上进一步思考:有没有办法为这样创建的类型存根类型化实例?比以下理论方法更简单的方法是什么?
instance Monad Foo where
return = undefined
(>>=) = undefined
Run Code Online (Sandbox Code Playgroud)
dan*_*anr 26
你可以EmptyDataDecls
用来存根一个类型,KindSignatures
你可以给它一种:
{-# LANGUAGE EmptyDataDecls, KindSignatures #-}
data Foo :: * -> *
Run Code Online (Sandbox Code Playgroud)
您也可以Monad
使用GHC的此选项将实例存根,而不发出警告.
{-# OPTIONS_GHC -fno-warn-missing-methods #-}
instance Monad Foo
Run Code Online (Sandbox Code Playgroud)
然后你不需要为return
和保留任何实现>>=
.