{-# LINE 1 "small/Lift.as" #-}
module Main where
{-# LINE 1 "small/Lift.as" #-}
import Arrow
 
{-# LINE 5 "small/Lift.as" #-}
liftA2' :: (Arrow a) => (b -> c -> d) -> a e b -> a e c -> a e d
{-# LINE 6 "small/Lift.as" #-}
liftA2' op f g
  = (arr (\ x -> (x, x)) >>>
       (first f >>> arr (\ (y, x) -> (x, y))) >>>
	 (first g >>> arr (\ (z, y) -> y `op` z)))
