{-# 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)))