x = ( observe "last" :: Observing ([Int] -> Int) ) last
ex7 = printO (x [1..4])
-- last
{ \ (_ : _ : _ : 4 : []) -> 4
}
dobros :: [Int] -> [Int]
dobros = observe "map (*2)" map (*2)
ex8 = printO (dobros [1..5])
-- map (*2)
{ \ { \ 1 -> 2
, \ 2 -> 4
, \ 3 -> 6
, \ 4 -> 8
, \ 5 -> 10
} (1 : 2 : 3 : 4 : 5 : [])
-> 2 : 4 : 6 : 8 : 10 : []
}