短いバージョン: 関数の型を多形的にエイリアスしたいtype myType = [Int] -> (Tree Int,[Int])
(つまり、 s だけでなく何でも入れることができるInt
)。どうすればこれを行うことができますか?
長いバージョン: 私は現在持っています:
data Colour = R | B deriving (Show, Read, Eq)
data Tree elt = E | T Colour (Tree elt) elt (Tree elt) deriving (Show, Read, Eq)
type Set a = Tree a
私がしたい:
type Funcs = [elt] -> (Tree elt, [elt])
次に、型を持ついくつかの関数を記述しますFuncs
treeify_zero :: Treeify_t
treeify_zero lst = (E,lst)
treeify_one :: Treeify_t
treeify_one (h:t) = ((T R E h E), t)
このような。type Funcs = forall elt. [elt] -> (Tree elt, [elt])
現在、 GHCi で適切に実行することができません。type Funcs elt = [elt] -> (Tree elt, [elt])
GHCiを使用すると、私の定義にtreeify_zero/one
「引数が 1 つあるはずですが、`to': to :: Treeify_t の型シグネチャでは何も指定されていません」と文句を言われます。