我有一个使用自定义Prelude的项目,但它似乎与~/.ghci
中的提示函数冲突。简单的例子:
$ ghci -XNoImplicitPrelude
GHCi, version 8.2.2: http://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/refold/etc/ghci
> :set prompt-function \ms _ -> ms
<interactive>:1:19: error:
Not in scope: type constructor or class ‘String’
<interactive>:1:30: error:
Not in scope: type constructor or class ‘Int’
<interactive>:1:37: error:
Not in scope: type constructor or class ‘IO’
<interactive>:1:40: error:
Not in scope: type constructor or class ‘String’
是否可以同时使-XNoImplicitPrelude
和:set prompt-function
协同工作?
答案 0 :(得分:3)
将String
,Int
,IO
以及任何必要的内容放回范围内。如果Prelude
不可用(因为使用base-noprelude
),可以在自己的模块中找到这些类型:
> import Data.String (String)
> import Data.Int (Int)
> import System.IO (IO)
> import Text.Show (show)
> import Control.Applicative (pure)
> :set prompt-function \ms n -> pure (show (ms, n)) -- [String] -> Int -> IO String