Examples
fun map(f,nil) = nil | map(f,x::xs) = f x :: map(f,xs);
val map = fn : (�a -> �b) * �a list -> �b list
val square = fn : int -> int
[9,16,25] : int list (* �a is int and �b is int *)
val length = fn : �a list -> int
map length [[3,4],[5,6,7],[]];
[2,3,0] : int list (* for length: �a is int for map: �a is int list, �b is int *)