thenA :: Auto a q1 -> Auto a q2 -> Auto a (Either q1 q2) thenA (A s11 ini11 ac11 t11) (A s12 ini12 ac12 t12) = (A st ini1 ac2 tr) where (A s1 ini1 ac1 t1) = leftA (A s11 ini11 ac11 t11) (A s2 ini2 ac2 t2) = rightA (A s12 ini12 ac12 t12) st = s1 ++ s2 tr x () | ac1 x = ini2 | otherwise = []