After code block ::: {#lst:code1 .listing .haskell} Listing 1: Listing caption 1 ``` {.haskell} main :: IO () main = putStrLn "Hello World!" ``` ::: ::: {#lst:code2 .listing .haskell} Listing 2: Listing caption 2 ``` {.haskell} main :: IO () main = putStrLn "Hello World!" ``` ::: ::: {#lst:code3 .listing .haskell} Listing 3: Listing caption 3 ``` {.haskell} main :: IO () main = putStrLn "Hello World!" ``` ::: ::: {#lst:code4 .listing .haskell} Listing 4: Listing caption 4 ``` {.haskell} main :: IO () main = putStrLn "Hello World!" ``` ::: ``` {.haskell} main :: IO () main = putStrLn "Hello World!" ``` : Listing caption 5 (invalid) ``` {.haskell} main :: IO () main = putStrLn "Hello World!" ``` : Listing caption 6 (invalid) Before code block ::: {#lst:code11 .listing .haskell} Listing 5: Listing caption 11 ``` {.haskell} main :: IO () main = putStrLn "Hello World!" ``` ::: ::: {#lst:code12 .listing .haskell} Listing 6: Listing caption 12 ``` {.haskell} main :: IO () main = putStrLn "Hello World!" ``` ::: ::: {#lst:code13 .listing .haskell} Listing 7: Listing caption 13 ``` {.haskell} main :: IO () main = putStrLn "Hello World!" ``` ::: ::: {#lst:code14 .listing .haskell} Listing 8: Listing caption 14 ``` {.haskell} main :: IO () main = putStrLn "Hello World!" ``` ::: ------------------------------------------------------------------------ : Listing caption 15 (invalid) ``` {.haskell} main :: IO () main = putStrLn "Hello World!" ``` : Listing caption 16 (invalid) ``` {.haskell} main :: IO () main = putStrLn "Hello World!" ```