Haskell 是否可以将IO类型转换为任意类型?

Haskell 是否可以将IO类型转换为任意类型?,haskell,io,Haskell,Io,我正在Haskell中构建一个数独解算器,我有两个功能: genProblemm :: Node -> IO Node newSudoku :: IO Node 用于生成数独谜题。我想使用QuickCheck库来测试我的解算器。是否可以使用这些函数使节点成为的实例?我找不到一般的方法 我只了解了类型: instance Arbitrary Node where arbitrary = 。。。但是我不知道如何使用我现有的函数编写任意的,它们都是IO类型 编辑: Node = (

我正在Haskell中构建一个数独解算器,我有两个功能:

genProblemm :: Node -> IO Node
newSudoku   :: IO Node
用于生成数独谜题。我想使用
QuickCheck
库来测试我的解算器。是否可以使用这些函数使
节点
成为的实例?我找不到一般的方法

我只了解了类型:

instance Arbitrary Node where
  arbitrary = 
。。。但是我不知道如何使用我现有的函数编写
任意的
,它们都是
IO
类型

编辑:

Node = (Sudoku, [(Column, Row, [Int])])
type Sudoku = (Row,Column) -> Int

一个节点就是整个数独。

什么是“任意”
?我们是在说“快速检查”
?还有,什么是“节点”?它是拼图中的单个单元格吗?这是一个完整的谜题吗?
仲裁
你缺乏精确性让我感到不安。除非你的算法真的做IO,我可能怀疑它没有——它只是使用随机数,对吧没有必要把它放在那里。从IO中取出QuickCheck的那一刻起,它就拥有大多数基本类型和随机库的实例。