Just curious, why does ghci run in the context of a 'do'?

This tripped me up when I first started learning Haskell.  It's fine once you know what's going on, but why the restriction?  Why can't I write the code below without 'let' and ':module'?

> two = 1 + 1
> import Data.List
> cols = transpose [[1,2,3], [4,5,6]]

Thanks,
Greg