Hello :), thanks for making this library - probably the best documentation I've seen for a Haskell library!
What is the purpose of having appDraw return multiple widgets ( `[Widet a]`)? I don't understand what it represents - the guide mentions 'vty layers' but I'm not familiar with this either. Does one layer `Widget`(?) get written over another if there are multiple layers?
I've got a short example here:
```
module Main where
import Brick
import Brick.Widgets.Border
import Graphics.Vty.Attributes
type AppState = Int
app :: App AppState () String
app =
App
{ appDraw = appDraw'
, appChooseCursor =
const . const Nothing :: AppState -> [CursorLocation String] -> Maybe (CursorLocation String)
, appHandleEvent =
(\appState _ -> Brick.halt appState) :: AppState -> BrickEvent String () -> EventM String (Next AppState)
, appStartEvent = return :: AppState -> EventM String AppState
, appAttrMap = const (attrMap (defAttr) ([])) :: AppState -> AttrMap
}
appDraw' :: AppState -> [Widget String]
appDraw' _ = [
hBox [str "Abc...", str "Xyz...", str "Woohoo"]
, (str "Hello," <=> str "World!" <=> hBorder)
, hBox [str "Abc", str "Xyz", str "Woohoo"]
]
main :: IO ()
main = do
let initialState = 5
defaultMain app initialState >>= print
```
This outputs:
```
Abc...Xyz...Woohoo
World!
───────────────────────────────────────────────────────────
```
I was expecting something like:
```
Abc...Xyz...Woohoo
Hello World
--------------------
AbcXyzWoohoo
```