module Main where import Control.Monad.Eff data List a = Cons a (List a) | Nil match2 :: List Number -> Number match2 (Cons x (Cons y xs)) = x * y + match2 xs match2 _ = 0.0 foreign import explode """ function explode() { throw new Error('Incorrect result'); } """ :: forall eff a. Eff eff a main = case match2 (Cons 1.0 (Cons 2.0 (Cons 3.0 (Cons 4.0 (Cons 5.0 (Cons 6.0 (Cons 7.0 (Cons 8.0 (Cons 9.0 Nil))))))))) of 100.0 -> Debug.Trace.trace "Done" _ -> explode