{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE StandaloneDeriving #-}

module Hercules.API.Agent.Evaluate.EvaluateTask where

import Data.Aeson (Value)
import Hercules.API.Prelude
import Hercules.API.Task (Task)

data EvaluateTask = EvaluateTask
  { EvaluateTask -> Id (Task EvaluateTask)
id :: Id (Task EvaluateTask),
    EvaluateTask -> Text
primaryInput :: Text, -- Obsolete since >= 0.8
    EvaluateTask -> Map Text Text
otherInputs :: Map Identifier Text, -- identifier -> HTTP URL
    EvaluateTask -> Map Text (Map Text Value)
inputMetadata :: Map Identifier (Map Text Value),
    EvaluateTask -> Map Text (SubPathOf Text)
autoArguments :: Map Text (SubPathOf Identifier), -- argument name -> identifier
    EvaluateTask -> [NixPathElement (SubPathOf Text)]
nixPath :: [NixPathElement (SubPathOf Identifier)], -- NIX_PATH element -> identifier
    EvaluateTask -> Text
logToken :: Text
  }
  deriving ((forall x. EvaluateTask -> Rep EvaluateTask x)
-> (forall x. Rep EvaluateTask x -> EvaluateTask)
-> Generic EvaluateTask
forall x. Rep EvaluateTask x -> EvaluateTask
forall x. EvaluateTask -> Rep EvaluateTask x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep EvaluateTask x -> EvaluateTask
$cfrom :: forall x. EvaluateTask -> Rep EvaluateTask x
Generic, Int -> EvaluateTask -> ShowS
[EvaluateTask] -> ShowS
EvaluateTask -> String
(Int -> EvaluateTask -> ShowS)
-> (EvaluateTask -> String)
-> ([EvaluateTask] -> ShowS)
-> Show EvaluateTask
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EvaluateTask] -> ShowS
$cshowList :: [EvaluateTask] -> ShowS
show :: EvaluateTask -> String
$cshow :: EvaluateTask -> String
showsPrec :: Int -> EvaluateTask -> ShowS
$cshowsPrec :: Int -> EvaluateTask -> ShowS
Show, EvaluateTask -> EvaluateTask -> Bool
(EvaluateTask -> EvaluateTask -> Bool)
-> (EvaluateTask -> EvaluateTask -> Bool) -> Eq EvaluateTask
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EvaluateTask -> EvaluateTask -> Bool
$c/= :: EvaluateTask -> EvaluateTask -> Bool
== :: EvaluateTask -> EvaluateTask -> Bool
$c== :: EvaluateTask -> EvaluateTask -> Bool
Eq, EvaluateTask -> ()
(EvaluateTask -> ()) -> NFData EvaluateTask
forall a. (a -> ()) -> NFData a
rnf :: EvaluateTask -> ()
$crnf :: EvaluateTask -> ()
NFData, [EvaluateTask] -> Encoding
[EvaluateTask] -> Value
EvaluateTask -> Encoding
EvaluateTask -> Value
(EvaluateTask -> Value)
-> (EvaluateTask -> Encoding)
-> ([EvaluateTask] -> Value)
-> ([EvaluateTask] -> Encoding)
-> ToJSON EvaluateTask
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [EvaluateTask] -> Encoding
$ctoEncodingList :: [EvaluateTask] -> Encoding
toJSONList :: [EvaluateTask] -> Value
$ctoJSONList :: [EvaluateTask] -> Value
toEncoding :: EvaluateTask -> Encoding
$ctoEncoding :: EvaluateTask -> Encoding
toJSON :: EvaluateTask -> Value
$ctoJSON :: EvaluateTask -> Value
ToJSON, Value -> Parser [EvaluateTask]
Value -> Parser EvaluateTask
(Value -> Parser EvaluateTask)
-> (Value -> Parser [EvaluateTask]) -> FromJSON EvaluateTask
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [EvaluateTask]
$cparseJSONList :: Value -> Parser [EvaluateTask]
parseJSON :: Value -> Parser EvaluateTask
$cparseJSON :: Value -> Parser EvaluateTask
FromJSON)

type Identifier = Text

data NixPathElement a = NixPathElement
  { -- | for example @/home/user/nixpkgs@ in @/home/user/nixpkgs:/etc/nixos/foo@
    NixPathElement a -> Maybe Text
prefix :: Maybe Text,
    NixPathElement a -> a
value :: a
  }
  deriving ((forall x. NixPathElement a -> Rep (NixPathElement a) x)
-> (forall x. Rep (NixPathElement a) x -> NixPathElement a)
-> Generic (NixPathElement a)
forall x. Rep (NixPathElement a) x -> NixPathElement a
forall x. NixPathElement a -> Rep (NixPathElement a) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall a x. Rep (NixPathElement a) x -> NixPathElement a
forall a x. NixPathElement a -> Rep (NixPathElement a) x
$cto :: forall a x. Rep (NixPathElement a) x -> NixPathElement a
$cfrom :: forall a x. NixPathElement a -> Rep (NixPathElement a) x
Generic, Int -> NixPathElement a -> ShowS
[NixPathElement a] -> ShowS
NixPathElement a -> String
(Int -> NixPathElement a -> ShowS)
-> (NixPathElement a -> String)
-> ([NixPathElement a] -> ShowS)
-> Show (NixPathElement a)
forall a. Show a => Int -> NixPathElement a -> ShowS
forall a. Show a => [NixPathElement a] -> ShowS
forall a. Show a => NixPathElement a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NixPathElement a] -> ShowS
$cshowList :: forall a. Show a => [NixPathElement a] -> ShowS
show :: NixPathElement a -> String
$cshow :: forall a. Show a => NixPathElement a -> String
showsPrec :: Int -> NixPathElement a -> ShowS
$cshowsPrec :: forall a. Show a => Int -> NixPathElement a -> ShowS
Show, NixPathElement a -> NixPathElement a -> Bool
(NixPathElement a -> NixPathElement a -> Bool)
-> (NixPathElement a -> NixPathElement a -> Bool)
-> Eq (NixPathElement a)
forall a. Eq a => NixPathElement a -> NixPathElement a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NixPathElement a -> NixPathElement a -> Bool
$c/= :: forall a. Eq a => NixPathElement a -> NixPathElement a -> Bool
== :: NixPathElement a -> NixPathElement a -> Bool
$c== :: forall a. Eq a => NixPathElement a -> NixPathElement a -> Bool
Eq, NixPathElement a -> ()
(NixPathElement a -> ()) -> NFData (NixPathElement a)
forall a. NFData a => NixPathElement a -> ()
forall a. (a -> ()) -> NFData a
rnf :: NixPathElement a -> ()
$crnf :: forall a. NFData a => NixPathElement a -> ()
NFData, [NixPathElement a] -> Encoding
[NixPathElement a] -> Value
NixPathElement a -> Encoding
NixPathElement a -> Value
(NixPathElement a -> Value)
-> (NixPathElement a -> Encoding)
-> ([NixPathElement a] -> Value)
-> ([NixPathElement a] -> Encoding)
-> ToJSON (NixPathElement a)
forall a. ToJSON a => [NixPathElement a] -> Encoding
forall a. ToJSON a => [NixPathElement a] -> Value
forall a. ToJSON a => NixPathElement a -> Encoding
forall a. ToJSON a => NixPathElement a -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [NixPathElement a] -> Encoding
$ctoEncodingList :: forall a. ToJSON a => [NixPathElement a] -> Encoding
toJSONList :: [NixPathElement a] -> Value
$ctoJSONList :: forall a. ToJSON a => [NixPathElement a] -> Value
toEncoding :: NixPathElement a -> Encoding
$ctoEncoding :: forall a. ToJSON a => NixPathElement a -> Encoding
toJSON :: NixPathElement a -> Value
$ctoJSON :: forall a. ToJSON a => NixPathElement a -> Value
ToJSON, Value -> Parser [NixPathElement a]
Value -> Parser (NixPathElement a)
(Value -> Parser (NixPathElement a))
-> (Value -> Parser [NixPathElement a])
-> FromJSON (NixPathElement a)
forall a. FromJSON a => Value -> Parser [NixPathElement a]
forall a. FromJSON a => Value -> Parser (NixPathElement a)
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [NixPathElement a]
$cparseJSONList :: forall a. FromJSON a => Value -> Parser [NixPathElement a]
parseJSON :: Value -> Parser (NixPathElement a)
$cparseJSON :: forall a. FromJSON a => Value -> Parser (NixPathElement a)
FromJSON, a -> NixPathElement b -> NixPathElement a
(a -> b) -> NixPathElement a -> NixPathElement b
(forall a b. (a -> b) -> NixPathElement a -> NixPathElement b)
-> (forall a b. a -> NixPathElement b -> NixPathElement a)
-> Functor NixPathElement
forall a b. a -> NixPathElement b -> NixPathElement a
forall a b. (a -> b) -> NixPathElement a -> NixPathElement b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: a -> NixPathElement b -> NixPathElement a
$c<$ :: forall a b. a -> NixPathElement b -> NixPathElement a
fmap :: (a -> b) -> NixPathElement a -> NixPathElement b
$cfmap :: forall a b. (a -> b) -> NixPathElement a -> NixPathElement b
Functor, NixPathElement a -> Bool
(a -> m) -> NixPathElement a -> m
(a -> b -> b) -> b -> NixPathElement a -> b
(forall m. Monoid m => NixPathElement m -> m)
-> (forall m a. Monoid m => (a -> m) -> NixPathElement a -> m)
-> (forall m a. Monoid m => (a -> m) -> NixPathElement a -> m)
-> (forall a b. (a -> b -> b) -> b -> NixPathElement a -> b)
-> (forall a b. (a -> b -> b) -> b -> NixPathElement a -> b)
-> (forall b a. (b -> a -> b) -> b -> NixPathElement a -> b)
-> (forall b a. (b -> a -> b) -> b -> NixPathElement a -> b)
-> (forall a. (a -> a -> a) -> NixPathElement a -> a)
-> (forall a. (a -> a -> a) -> NixPathElement a -> a)
-> (forall a. NixPathElement a -> [a])
-> (forall a. NixPathElement a -> Bool)
-> (forall a. NixPathElement a -> Int)
-> (forall a. Eq a => a -> NixPathElement a -> Bool)
-> (forall a. Ord a => NixPathElement a -> a)
-> (forall a. Ord a => NixPathElement a -> a)
-> (forall a. Num a => NixPathElement a -> a)
-> (forall a. Num a => NixPathElement a -> a)
-> Foldable NixPathElement
forall a. Eq a => a -> NixPathElement a -> Bool
forall a. Num a => NixPathElement a -> a
forall a. Ord a => NixPathElement a -> a
forall m. Monoid m => NixPathElement m -> m
forall a. NixPathElement a -> Bool
forall a. NixPathElement a -> Int
forall a. NixPathElement a -> [a]
forall a. (a -> a -> a) -> NixPathElement a -> a
forall m a. Monoid m => (a -> m) -> NixPathElement a -> m
forall b a. (b -> a -> b) -> b -> NixPathElement a -> b
forall a b. (a -> b -> b) -> b -> NixPathElement a -> b
forall (t :: * -> *).
(forall m. Monoid m => t m -> m)
-> (forall m a. Monoid m => (a -> m) -> t a -> m)
-> (forall m a. Monoid m => (a -> m) -> t a -> m)
-> (forall a b. (a -> b -> b) -> b -> t a -> b)
-> (forall a b. (a -> b -> b) -> b -> t a -> b)
-> (forall b a. (b -> a -> b) -> b -> t a -> b)
-> (forall b a. (b -> a -> b) -> b -> t a -> b)
-> (forall a. (a -> a -> a) -> t a -> a)
-> (forall a. (a -> a -> a) -> t a -> a)
-> (forall a. t a -> [a])
-> (forall a. t a -> Bool)
-> (forall a. t a -> Int)
-> (forall a. Eq a => a -> t a -> Bool)
-> (forall a. Ord a => t a -> a)
-> (forall a. Ord a => t a -> a)
-> (forall a. Num a => t a -> a)
-> (forall a. Num a => t a -> a)
-> Foldable t
product :: NixPathElement a -> a
$cproduct :: forall a. Num a => NixPathElement a -> a
sum :: NixPathElement a -> a
$csum :: forall a. Num a => NixPathElement a -> a
minimum :: NixPathElement a -> a
$cminimum :: forall a. Ord a => NixPathElement a -> a
maximum :: NixPathElement a -> a
$cmaximum :: forall a. Ord a => NixPathElement a -> a
elem :: a -> NixPathElement a -> Bool
$celem :: forall a. Eq a => a -> NixPathElement a -> Bool
length :: NixPathElement a -> Int
$clength :: forall a. NixPathElement a -> Int
null :: NixPathElement a -> Bool
$cnull :: forall a. NixPathElement a -> Bool
toList :: NixPathElement a -> [a]
$ctoList :: forall a. NixPathElement a -> [a]
foldl1 :: (a -> a -> a) -> NixPathElement a -> a
$cfoldl1 :: forall a. (a -> a -> a) -> NixPathElement a -> a
foldr1 :: (a -> a -> a) -> NixPathElement a -> a
$cfoldr1 :: forall a. (a -> a -> a) -> NixPathElement a -> a
foldl' :: (b -> a -> b) -> b -> NixPathElement a -> b
$cfoldl' :: forall b a. (b -> a -> b) -> b -> NixPathElement a -> b
foldl :: (b -> a -> b) -> b -> NixPathElement a -> b
$cfoldl :: forall b a. (b -> a -> b) -> b -> NixPathElement a -> b
foldr' :: (a -> b -> b) -> b -> NixPathElement a -> b
$cfoldr' :: forall a b. (a -> b -> b) -> b -> NixPathElement a -> b
foldr :: (a -> b -> b) -> b -> NixPathElement a -> b
$cfoldr :: forall a b. (a -> b -> b) -> b -> NixPathElement a -> b
foldMap' :: (a -> m) -> NixPathElement a -> m
$cfoldMap' :: forall m a. Monoid m => (a -> m) -> NixPathElement a -> m
foldMap :: (a -> m) -> NixPathElement a -> m
$cfoldMap :: forall m a. Monoid m => (a -> m) -> NixPathElement a -> m
fold :: NixPathElement m -> m
$cfold :: forall m. Monoid m => NixPathElement m -> m
Foldable, Functor NixPathElement
Foldable NixPathElement
Functor NixPathElement
-> Foldable NixPathElement
-> (forall (f :: * -> *) a b.
    Applicative f =>
    (a -> f b) -> NixPathElement a -> f (NixPathElement b))
-> (forall (f :: * -> *) a.
    Applicative f =>
    NixPathElement (f a) -> f (NixPathElement a))
-> (forall (m :: * -> *) a b.
    Monad m =>
    (a -> m b) -> NixPathElement a -> m (NixPathElement b))
-> (forall (m :: * -> *) a.
    Monad m =>
    NixPathElement (m a) -> m (NixPathElement a))
-> Traversable NixPathElement
(a -> f b) -> NixPathElement a -> f (NixPathElement b)
forall (t :: * -> *).
Functor t
-> Foldable t
-> (forall (f :: * -> *) a b.
    Applicative f =>
    (a -> f b) -> t a -> f (t b))
-> (forall (f :: * -> *) a. Applicative f => t (f a) -> f (t a))
-> (forall (m :: * -> *) a b.
    Monad m =>
    (a -> m b) -> t a -> m (t b))
-> (forall (m :: * -> *) a. Monad m => t (m a) -> m (t a))
-> Traversable t
forall (m :: * -> *) a.
Monad m =>
NixPathElement (m a) -> m (NixPathElement a)
forall (f :: * -> *) a.
Applicative f =>
NixPathElement (f a) -> f (NixPathElement a)
forall (m :: * -> *) a b.
Monad m =>
(a -> m b) -> NixPathElement a -> m (NixPathElement b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> NixPathElement a -> f (NixPathElement b)
sequence :: NixPathElement (m a) -> m (NixPathElement a)
$csequence :: forall (m :: * -> *) a.
Monad m =>
NixPathElement (m a) -> m (NixPathElement a)
mapM :: (a -> m b) -> NixPathElement a -> m (NixPathElement b)
$cmapM :: forall (m :: * -> *) a b.
Monad m =>
(a -> m b) -> NixPathElement a -> m (NixPathElement b)
sequenceA :: NixPathElement (f a) -> f (NixPathElement a)
$csequenceA :: forall (f :: * -> *) a.
Applicative f =>
NixPathElement (f a) -> f (NixPathElement a)
traverse :: (a -> f b) -> NixPathElement a -> f (NixPathElement b)
$ctraverse :: forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> NixPathElement a -> f (NixPathElement b)
$cp2Traversable :: Foldable NixPathElement
$cp1Traversable :: Functor NixPathElement
Traversable)

-- | For using a path inside a source
data SubPathOf a = SubPathOf
  { SubPathOf a -> a
path :: a,
    SubPathOf a -> Maybe Text
subPath :: Maybe Text
  }
  deriving ((forall x. SubPathOf a -> Rep (SubPathOf a) x)
-> (forall x. Rep (SubPathOf a) x -> SubPathOf a)
-> Generic (SubPathOf a)
forall x. Rep (SubPathOf a) x -> SubPathOf a
forall x. SubPathOf a -> Rep (SubPathOf a) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall a x. Rep (SubPathOf a) x -> SubPathOf a
forall a x. SubPathOf a -> Rep (SubPathOf a) x
$cto :: forall a x. Rep (SubPathOf a) x -> SubPathOf a
$cfrom :: forall a x. SubPathOf a -> Rep (SubPathOf a) x
Generic, Int -> SubPathOf a -> ShowS
[SubPathOf a] -> ShowS
SubPathOf a -> String
(Int -> SubPathOf a -> ShowS)
-> (SubPathOf a -> String)
-> ([SubPathOf a] -> ShowS)
-> Show (SubPathOf a)
forall a. Show a => Int -> SubPathOf a -> ShowS
forall a. Show a => [SubPathOf a] -> ShowS
forall a. Show a => SubPathOf a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SubPathOf a] -> ShowS
$cshowList :: forall a. Show a => [SubPathOf a] -> ShowS
show :: SubPathOf a -> String
$cshow :: forall a. Show a => SubPathOf a -> String
showsPrec :: Int -> SubPathOf a -> ShowS
$cshowsPrec :: forall a. Show a => Int -> SubPathOf a -> ShowS
Show, SubPathOf a -> SubPathOf a -> Bool
(SubPathOf a -> SubPathOf a -> Bool)
-> (SubPathOf a -> SubPathOf a -> Bool) -> Eq (SubPathOf a)
forall a. Eq a => SubPathOf a -> SubPathOf a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SubPathOf a -> SubPathOf a -> Bool
$c/= :: forall a. Eq a => SubPathOf a -> SubPathOf a -> Bool
== :: SubPathOf a -> SubPathOf a -> Bool
$c== :: forall a. Eq a => SubPathOf a -> SubPathOf a -> Bool
Eq, SubPathOf a -> ()
(SubPathOf a -> ()) -> NFData (SubPathOf a)
forall a. NFData a => SubPathOf a -> ()
forall a. (a -> ()) -> NFData a
rnf :: SubPathOf a -> ()
$crnf :: forall a. NFData a => SubPathOf a -> ()
NFData, [SubPathOf a] -> Encoding
[SubPathOf a] -> Value
SubPathOf a -> Encoding
SubPathOf a -> Value
(SubPathOf a -> Value)
-> (SubPathOf a -> Encoding)
-> ([SubPathOf a] -> Value)
-> ([SubPathOf a] -> Encoding)
-> ToJSON (SubPathOf a)
forall a. ToJSON a => [SubPathOf a] -> Encoding
forall a. ToJSON a => [SubPathOf a] -> Value
forall a. ToJSON a => SubPathOf a -> Encoding
forall a. ToJSON a => SubPathOf a -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [SubPathOf a] -> Encoding
$ctoEncodingList :: forall a. ToJSON a => [SubPathOf a] -> Encoding
toJSONList :: [SubPathOf a] -> Value
$ctoJSONList :: forall a. ToJSON a => [SubPathOf a] -> Value
toEncoding :: SubPathOf a -> Encoding
$ctoEncoding :: forall a. ToJSON a => SubPathOf a -> Encoding
toJSON :: SubPathOf a -> Value
$ctoJSON :: forall a. ToJSON a => SubPathOf a -> Value
ToJSON, Value -> Parser [SubPathOf a]
Value -> Parser (SubPathOf a)
(Value -> Parser (SubPathOf a))
-> (Value -> Parser [SubPathOf a]) -> FromJSON (SubPathOf a)
forall a. FromJSON a => Value -> Parser [SubPathOf a]
forall a. FromJSON a => Value -> Parser (SubPathOf a)
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [SubPathOf a]
$cparseJSONList :: forall a. FromJSON a => Value -> Parser [SubPathOf a]
parseJSON :: Value -> Parser (SubPathOf a)
$cparseJSON :: forall a. FromJSON a => Value -> Parser (SubPathOf a)
FromJSON, a -> SubPathOf b -> SubPathOf a
(a -> b) -> SubPathOf a -> SubPathOf b
(forall a b. (a -> b) -> SubPathOf a -> SubPathOf b)
-> (forall a b. a -> SubPathOf b -> SubPathOf a)
-> Functor SubPathOf
forall a b. a -> SubPathOf b -> SubPathOf a
forall a b. (a -> b) -> SubPathOf a -> SubPathOf b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: a -> SubPathOf b -> SubPathOf a
$c<$ :: forall a b. a -> SubPathOf b -> SubPathOf a
fmap :: (a -> b) -> SubPathOf a -> SubPathOf b
$cfmap :: forall a b. (a -> b) -> SubPathOf a -> SubPathOf b
Functor, SubPathOf a -> Bool
(a -> m) -> SubPathOf a -> m
(a -> b -> b) -> b -> SubPathOf a -> b
(forall m. Monoid m => SubPathOf m -> m)
-> (forall m a. Monoid m => (a -> m) -> SubPathOf a -> m)
-> (forall m a. Monoid m => (a -> m) -> SubPathOf a -> m)
-> (forall a b. (a -> b -> b) -> b -> SubPathOf a -> b)
-> (forall a b. (a -> b -> b) -> b -> SubPathOf a -> b)
-> (forall b a. (b -> a -> b) -> b -> SubPathOf a -> b)
-> (forall b a. (b -> a -> b) -> b -> SubPathOf a -> b)
-> (forall a. (a -> a -> a) -> SubPathOf a -> a)
-> (forall a. (a -> a -> a) -> SubPathOf a -> a)
-> (forall a. SubPathOf a -> [a])
-> (forall a. SubPathOf a -> Bool)
-> (forall a. SubPathOf a -> Int)
-> (forall a. Eq a => a -> SubPathOf a -> Bool)
-> (forall a. Ord a => SubPathOf a -> a)
-> (forall a. Ord a => SubPathOf a -> a)
-> (forall a. Num a => SubPathOf a -> a)
-> (forall a. Num a => SubPathOf a -> a)
-> Foldable SubPathOf
forall a. Eq a => a -> SubPathOf a -> Bool
forall a. Num a => SubPathOf a -> a
forall a. Ord a => SubPathOf a -> a
forall m. Monoid m => SubPathOf m -> m
forall a. SubPathOf a -> Bool
forall a. SubPathOf a -> Int
forall a. SubPathOf a -> [a]
forall a. (a -> a -> a) -> SubPathOf a -> a
forall m a. Monoid m => (a -> m) -> SubPathOf a -> m
forall b a. (b -> a -> b) -> b -> SubPathOf a -> b
forall a b. (a -> b -> b) -> b -> SubPathOf a -> b
forall (t :: * -> *).
(forall m. Monoid m => t m -> m)
-> (forall m a. Monoid m => (a -> m) -> t a -> m)
-> (forall m a. Monoid m => (a -> m) -> t a -> m)
-> (forall a b. (a -> b -> b) -> b -> t a -> b)
-> (forall a b. (a -> b -> b) -> b -> t a -> b)
-> (forall b a. (b -> a -> b) -> b -> t a -> b)
-> (forall b a. (b -> a -> b) -> b -> t a -> b)
-> (forall a. (a -> a -> a) -> t a -> a)
-> (forall a. (a -> a -> a) -> t a -> a)
-> (forall a. t a -> [a])
-> (forall a. t a -> Bool)
-> (forall a. t a -> Int)
-> (forall a. Eq a => a -> t a -> Bool)
-> (forall a. Ord a => t a -> a)
-> (forall a. Ord a => t a -> a)
-> (forall a. Num a => t a -> a)
-> (forall a. Num a => t a -> a)
-> Foldable t
product :: SubPathOf a -> a
$cproduct :: forall a. Num a => SubPathOf a -> a
sum :: SubPathOf a -> a
$csum :: forall a. Num a => SubPathOf a -> a
minimum :: SubPathOf a -> a
$cminimum :: forall a. Ord a => SubPathOf a -> a
maximum :: SubPathOf a -> a
$cmaximum :: forall a. Ord a => SubPathOf a -> a
elem :: a -> SubPathOf a -> Bool
$celem :: forall a. Eq a => a -> SubPathOf a -> Bool
length :: SubPathOf a -> Int
$clength :: forall a. SubPathOf a -> Int
null :: SubPathOf a -> Bool
$cnull :: forall a. SubPathOf a -> Bool
toList :: SubPathOf a -> [a]
$ctoList :: forall a. SubPathOf a -> [a]
foldl1 :: (a -> a -> a) -> SubPathOf a -> a
$cfoldl1 :: forall a. (a -> a -> a) -> SubPathOf a -> a
foldr1 :: (a -> a -> a) -> SubPathOf a -> a
$cfoldr1 :: forall a. (a -> a -> a) -> SubPathOf a -> a
foldl' :: (b -> a -> b) -> b -> SubPathOf a -> b
$cfoldl' :: forall b a. (b -> a -> b) -> b -> SubPathOf a -> b
foldl :: (b -> a -> b) -> b -> SubPathOf a -> b
$cfoldl :: forall b a. (b -> a -> b) -> b -> SubPathOf a -> b
foldr' :: (a -> b -> b) -> b -> SubPathOf a -> b
$cfoldr' :: forall a b. (a -> b -> b) -> b -> SubPathOf a -> b
foldr :: (a -> b -> b) -> b -> SubPathOf a -> b
$cfoldr :: forall a b. (a -> b -> b) -> b -> SubPathOf a -> b
foldMap' :: (a -> m) -> SubPathOf a -> m
$cfoldMap' :: forall m a. Monoid m => (a -> m) -> SubPathOf a -> m
foldMap :: (a -> m) -> SubPathOf a -> m
$cfoldMap :: forall m a. Monoid m => (a -> m) -> SubPathOf a -> m
fold :: SubPathOf m -> m
$cfold :: forall m. Monoid m => SubPathOf m -> m
Foldable, Functor SubPathOf
Foldable SubPathOf
Functor SubPathOf
-> Foldable SubPathOf
-> (forall (f :: * -> *) a b.
    Applicative f =>
    (a -> f b) -> SubPathOf a -> f (SubPathOf b))
-> (forall (f :: * -> *) a.
    Applicative f =>
    SubPathOf (f a) -> f (SubPathOf a))
-> (forall (m :: * -> *) a b.
    Monad m =>
    (a -> m b) -> SubPathOf a -> m (SubPathOf b))
-> (forall (m :: * -> *) a.
    Monad m =>
    SubPathOf (m a) -> m (SubPathOf a))
-> Traversable SubPathOf
(a -> f b) -> SubPathOf a -> f (SubPathOf b)
forall (t :: * -> *).
Functor t
-> Foldable t
-> (forall (f :: * -> *) a b.
    Applicative f =>
    (a -> f b) -> t a -> f (t b))
-> (forall (f :: * -> *) a. Applicative f => t (f a) -> f (t a))
-> (forall (m :: * -> *) a b.
    Monad m =>
    (a -> m b) -> t a -> m (t b))
-> (forall (m :: * -> *) a. Monad m => t (m a) -> m (t a))
-> Traversable t
forall (m :: * -> *) a.
Monad m =>
SubPathOf (m a) -> m (SubPathOf a)
forall (f :: * -> *) a.
Applicative f =>
SubPathOf (f a) -> f (SubPathOf a)
forall (m :: * -> *) a b.
Monad m =>
(a -> m b) -> SubPathOf a -> m (SubPathOf b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> SubPathOf a -> f (SubPathOf b)
sequence :: SubPathOf (m a) -> m (SubPathOf a)
$csequence :: forall (m :: * -> *) a.
Monad m =>
SubPathOf (m a) -> m (SubPathOf a)
mapM :: (a -> m b) -> SubPathOf a -> m (SubPathOf b)
$cmapM :: forall (m :: * -> *) a b.
Monad m =>
(a -> m b) -> SubPathOf a -> m (SubPathOf b)
sequenceA :: SubPathOf (f a) -> f (SubPathOf a)
$csequenceA :: forall (f :: * -> *) a.
Applicative f =>
SubPathOf (f a) -> f (SubPathOf a)
traverse :: (a -> f b) -> SubPathOf a -> f (SubPathOf b)
$ctraverse :: forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> SubPathOf a -> f (SubPathOf b)
$cp2Traversable :: Foldable SubPathOf
$cp1Traversable :: Functor SubPathOf
Traversable)