3
我想写:约束实例方法
{-# LANGUAGE InstanceSigs #-}
{-# LANGUAGE DatatypeContexts #-}
data Ord a => S a = ...
toList :: Ord a => S a -> [a]
fromList :: Ord a => [a] -> S a
instance Functor S where
fmap :: (Ord a, Ord b) => (a -> b) -> S a -> S b
fmap f = fromList . fmap f . toList
但GHC一直嫌我失望
方法签名不匹配类
问题:
- 你知道解决方法吗? ?
- 这个限制解决了什么问题?
ghc警告:-XDatatypeContexts已被弃用:它被广泛认为是一种错误,并已从Haskell语言中删除。 – ErikR
@ user5402为什么呢?你会做什么呢? –
@MichaelFox一个GADT,比如's S,其中S :: Ord a => [a] - > S a',或者任何你的构造函数。 – bheklilr