valB (a :|: b)   s st = ((x || y),st2) where (x,st1) = evalB a s st 
                                              (y,st2) = evalB b s st1

evalB (a :|: b)   s st = ((x || y),st2) where (x,st1) = evalB a s st 
                                              (y,st2) = evalB b s st1
evalB (a :|: b)   s st = ((x || y),st2) where (x,st1) = evalB a s st 
                                              (y,st2) = evalB b s st1