{-# OPTIONS_GHC -funbox-strict-fields #-}

data Vec4 = Vec4 !Float !Float !Float !Float


main :: IO ()
main = print traceList

traceList = concatMap (\(x,y) -> let (r,g,b,a) = getPixel (x,y) in [r,g,b,a])
    [(0,0)]
    where
    getPixel (x,y) = (red,green,blue,alpha)
        where
        Vec4 fr fg fb fa = seq x (Vec4 1 2 3 4)
        red = round fr
        green = round fg
        blue = round fb
        alpha = round fa
