f - это тип c kind'ом * -> *, то есть, говоря другими словами, параметризованный одним полиморфным параметром. Таков, например, тип списка - []. Или бинарного дерева Tree. Для того чтобы их использовать, нужно передать туда тип-параметр.
fmap :: (c -> c') -> ([] c -> [] c')
-- что эквивалентно fmap :: (c -> c') -> ([c] -> [c'])
fmap :: (c -> c') -> (Tree c -> Tree c')
fmap :: (c -> c') -> (Maybe c -> Maybe c')
fmap :: (c -> c') -> (IO c -> IO c')
no subject