sequence' (mx:xs) = unsafeInterleaveIO $
    combine xs =<< mx
    where combine xs x = return . (x:) =<< sequence' xs
sequence' (mx:xs) = unsafeInterleaveIO $
    combine xs =<< mx
    where combine xs x = return . (x:) =<< sequence' xs
sequence' (mx:xs) = unsafeInterleaveIO $
    combine xs =<< mx
    where combine xs x = return . (x:) =<< sequence' xs