인스턴스 메서드 구속 :내가 쓰고 싶은
{-# 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'data S와 같은 GADT, S :: Ord a => [a] -> S a' 또는 생성자가 무엇이든간에. – bheklilr