From: http://www.haskell.org/haskellwiki/Blow_your_mind#Polynomials
-- splitting in two (alternating)
-- "1234567" -> ("1357", "246")
-- the lazy match with ~ is necessary for efficiency, especially enabling processing of infinite lists
foldr (\a ~(x,y) -> (a:y,x)) ([],[])
This works but can't find (~) operator anywhere. Please explain or site a reference.