are mappings from arguments of one type to output of possible another type.

The type of functions are usually defined above their definition with the form funcName :: argType -> outputType.

There can be more argtypes or the outputType can be a function (depending how you look at it) for Curried Functions which are separated by -> and grouped by parenthesis. To avoid excess parenthesis for such functions it can be utilised that -> is associated to the right.

Examples

For a function even that determines if an Int is an even number

even :: Int -> Bool
even = n ´mod´ 2 == 0

For a function that increments a number by 1

increment :: Int -> Int
increment num = num + 1