a richer type system, with arrows and top
adding bottom