class Listy a b where
fromList :: [b] -> a
toList :: a -> [b]
lifted :: ([b] -> [b]) -> (a -> a)
lifted f = fromList . f . toList
data MyString = MyString { getString :: String } deriving Show
instance Listy MyString Char where
toList = getString
fromList = MyString
现在我需要编写例如lifted (reverse::(String -> String)) (MyString "Foobar")
。有没有一种方法可以避免使用类型签名?如何避免显式类型签名?