haskell - monad,其值仅限于类型类

时间:2011-08-31 04:53:06

标签: haskell monads typeclass

  

可能重复:
  Restricting a monad to a type class

我想编写一个与List monad类似的Set monad。但是,由于Set要求对其类型进行排序,因此无法执行此操作。有没有办法创建一个只在特定类型类(例如,Ord)中获取值的monad?我想写的代码是

instance Monad Set.Set where
    return a = Set.singleton a
    -- set α, function (α -> set β)
    xs >>= f = Set.fold
        (\x s -> Set.union s (f x))
        Set.empty
        xs

提前致谢!

0 个答案:

没有答案