Type signature required in some cases

In some cases a type signature is required for the compiler to recognise a function as task:

enterInt n
	= updateInformation "enter an integer value" [] n

is not wrapped, but

enterInt :: Int -> Task Int
enterInt n
	= updateInformation "enter an integer value" [] n

is....