Q:

Frequency table in Haskell with list comprehension only, find frequency of characters in a String

I am new to Haskell, trying to learn some stuff and pass the task that I was given. I would like to find the number of characters in a String but without importing Haskell modules.
I need to implement a frequency table and I would like to understand more about programming in Haskell and how I can do it.
I have my FreqTable as a tuple with the character and the number of occurrences of the 'char' in a String.
type FreqTable = [(Char, Int)]

I have been searching for for a solution for couple of days and long hours to find some working examples.
My function or the function in the task id declares as follows:
fTable :: String -> FreqTable

I know that the correct answer can be:
map (\x -> (head x, length x)) $ group $ sort

or
map (head &&& length) . group . sort

or
[ (x,c) | x <- ['A'..'z'], let c = (length . filter (==x)), c>0 ]

I can get this to work exactly with my list but I found this as an optional solution. I am getting an error which I can solve at the moment with the above list comprehension. 
 Couldn't match expected type ‘String -> FreqTable’
            with actual type ‘[(Char, [Char] -> Int)]’
In the expression:
  [(x, c) |
     x <- ['A' .. 'z'], let c = (length . filter (== x)), c > 0]
In an equation for ‘fTable’:
    fTable
      = [(x, c) |
           x <- ['A' .. 'z'], let c = (length . filter (== x)), c > 0]

Can please someone share with me and explain me a nice and simple way of checking the frequency of characters without importing Data.List or Map

A:

You haven't included what you should be filtering and taking the length of
[ (x,c) | x <- ['A'..'z'], let c = (length . filter (==x)), c>0 ]
--                                 ^_____________________^ 
-- this is a function from a String -> Int
-- you want the count, an Int
-- The function needs to be applied to a String

The string to apply it to is the argument to fTable
fTable :: String -> FreqTable
fTable    text   =  [ (x,c) | x <- ['A'..'z'], let c = (length . filter (==x)) text, c>0 ]
--        ^--------------------------------------------------------------------^

