In Haskell type definitions, type names always begin with uppercase letters, while type variables always begin with lowercase letters. Usually they are called a, band so on, but can also be caused by f, m, tetc.
Often the letters at the beginning of the alphabet is used for variables such as unlimited, while you often see more specific variables such as marked f, m, tetc.
In a specific example
foldl :: Foldable t => (b -> a -> b) -> b -> t a -> b
tis definitely referred to as an instance of a type class Foldable. t ameans any Foldable"container" that contains type values a.
app :: [t] -> t -> [t]
[a] -> a -> [a], app "" . , , app , t.