可変長引数の関数?
Movedのminor nit. イヤなことにはかわりなし。
class VAFun a r f | f -> r where withVAList :: ([a] -> r) -> f instance VAFun a Int Int where withVAList g = g [] instance VAFun a r x => VAFun a r (a -> x) where withVAList g x = withVAList (g . (x:)) vaSum :: VAFun Int Int x => x vaSum = withVAList sum
*Main> vaSum (3::Int) (2::Int) :: Int 5