@@ -423,7 +423,7 @@ where
424#include "inline.hs"
424#include "inline.hs"
426−import Control.Applicative (liftA2)
426+-- import Control.Applicative (liftA2)
427import Control.Monad ((>=>))
427import Control.Monad ((>=>))
428import Data.Bifunctor (Bifunctor(..))
428import Data.Bifunctor (Bifunctor(..))
429import Data.Either (fromLeft, fromRight, isLeft, isRight)
429import Data.Either (fromLeft, fromRight, isLeft, isRight)
@@ -860,6 +860,11 @@ split_ (Fold stepL initialL _) (Fold stepR initialR extractR) =
860 Partial sR -> extractR sR
860 Partial sR -> extractR sR
861 Done rR -> return rR
861 Done rR -> return rR
863+-- Disabled because this uses the non-CPS style splitWith operation. We should
864+-- use a CPS style operation to be compatible with parsers. For fused
865+-- applicative we can use a separate (Split) newtype instead.
863-- | 'Applicative' form of 'splitWith'. Split the input serially over two
868-- | 'Applicative' form of 'splitWith'. Split the input serially over two
865instance Monad m => Applicative (Fold m a) where
870instance Monad m => Applicative (Fold m a) where
@@ -874,6 +879,7 @@ instance Monad m => Applicative (Fold m a) where
875 {-# INLINE liftA2 #-}
880 {-# INLINE liftA2 #-}
876 liftA2 f x = (<*>) (fmap f x)
881 liftA2 f x = (<*>) (fmap f x)
878{-# ANN type TeeState Fuse #-}
884{-# ANN type TeeState Fuse #-}
879data TeeState sL sR bL bR
885data TeeState sL sR bL bR