
Dan Weston
There's always one more way to do things in Haskell! :)
Here's yet another way to get at the payloads in a list. You don't have to know how this works to use it:
Bastard. He's going to try and find out how it works. To get back to the filters: module Main where import Control.Monad data SampleType = A | B Int | C String deriving Show noA :: SampleType -> [SampleType] noA A = mzero noA e = return e noB :: SampleType -> [SampleType] noB (B _) = mzero noB e = return e noAB :: SampleType -> [SampleType] noAB m = [m] >>= noA >>= noB sampleTypes = [A, B 5, C "test", A, A, B 7, C "go"] *Main> sampleTypes >>= noA [B 5,C "test",B 7,C "go"] *Main> sampleTypes >>= noB [A,C "test",A,A,C "go"] *Main> sampleTypes >>= noAB [C "test",C "go"] -- (c) this sig last receiving data processing entity. Inspect headers for past copyright information. All rights reserved. Unauthorised copying, hiring, renting, public performance and/or broadcasting of this signature prohibited.