| bleed :: Account -> Flow -> Bool
| feed :: Account -> Flow -> Bool
| bleed (SimpleA n sd sb) (SimpleF src dest rule) = (n == src)
| feed (SimpleA n sd sb) (SimpleF src dest rule) = (n == dest)
| bleed (CompoundA []) f = False
| feed (CompoundA []) f = False
| bleed (CompoundA (a:al)) f = (bleed a f) || (bleed (CompoundA al) f)
| feed (CompoundA (a:al)) f = (feed a f) || (feed (CompoundA al) f)
You have to put all the equations defining one function
together, otherwise the compiler thinks you are defining
two functions, and have accidentally given them the same name.
So put all the bleeds together. (The type signature can be
separated, though.)
Simon