I'm seeing more strictness than I'd expect for printf:

    > printf "foo %s\n" (show ([1..10] ++ undefined))
    foo *** Exception: Prelude.undefined

In contrast,

    *Utils.Fabprim.ToHaskell> "foo " ++ show ([1..10] ++ undefined) ++ "\n"
    "foo [1,2,3,4,5,6,7,8,9,10*** Exception: Prelude.undefined

Known issue?

-- Conal