Haskell: mapping [[ and ]] to move between declarations