module Text.Regex.Do.Type.MatchHint where
import Text.Regex.Do.Type.Internal
newtype Once a = Once a
deriving (a -> Once b -> Once a
(a -> b) -> Once a -> Once b
(forall a b. (a -> b) -> Once a -> Once b)
-> (forall a b. a -> Once b -> Once a) -> Functor Once
forall a b. a -> Once b -> Once a
forall a b. (a -> b) -> Once a -> Once b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: a -> Once b -> Once a
$c<$ :: forall a b. a -> Once b -> Once a
fmap :: (a -> b) -> Once a -> Once b
$cfmap :: forall a b. (a -> b) -> Once a -> Once b
Functor)
newtype All a = All a
deriving (a -> All b -> All a
(a -> b) -> All a -> All b
(forall a b. (a -> b) -> All a -> All b)
-> (forall a b. a -> All b -> All a) -> Functor All
forall a b. a -> All b -> All a
forall a b. (a -> b) -> All a -> All b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: a -> All b -> All a
$c<$ :: forall a b. a -> All b -> All a
fmap :: (a -> b) -> All a -> All b
$cfmap :: forall a b. (a -> b) -> All a -> All b
Functor)
instance Hint Once where
unhint :: Once a -> a
unhint (Once a0 :: a
a0) = a
a0
hint :: a -> Once a
hint = a -> Once a
forall a. a -> Once a
Once
instance Hint All where
unhint :: All a -> a
unhint (All a0 :: a
a0) = a
a0
hint :: a -> All a
hint = a -> All a
forall a. a -> All a
All
instance Applicative Once where
pure :: a -> Once a
pure p0 :: a
p0 = a -> Once a
forall a. a -> Once a
Once a
p0
<*> :: Once (a -> b) -> Once a -> Once b
(<*>) (Once f0 :: a -> b
f0) (Once a0 :: a
a0) = b -> Once b
forall a. a -> Once a
Once (b -> Once b) -> b -> Once b
forall a b. (a -> b) -> a -> b
$ a -> b
f0 a
a0
instance Applicative All where
pure :: a -> All a
pure p0 :: a
p0 = a -> All a
forall a. a -> All a
All a
p0
<*> :: All (a -> b) -> All a -> All b
(<*>) (All f0 :: a -> b
f0) (All a0 :: a
a0) = b -> All b
forall a. a -> All a
All (b -> All b) -> b -> All b
forall a b. (a -> b) -> a -> b
$ a -> b
f0 a
a0