Or Apply? http://hackage.haskell.org/package/semigroupoids-184.108.40.206/docs/Data-Functor-Apply.html#t:Apply Which has ZipList but not List? Yes it was Apply liftA2 becomes liftF2 Also see WrappedApplicative How does that work? Because that's essentially what I've been chasing. Nope, this still has . *Main> liftF2 (+) [1,2] [3,4] [4,5,5,6] Damn. Let's just put liftA2 back. There's no need to create the dependency.