first-class-families-0.8.0.0: First class type families

Safe HaskellSafe
LanguageHaskell2010

Fcf.Core

Description

The Eval family.

Synopsis

Documentation

type Exp a = a -> Type Source #

Kind of type-level expressions indexed by their result type.

type family Eval (e :: Exp a) :: a Source #

Expression evaluator.

Instances
type Eval (Not False) Source # 
Instance details

Defined in Fcf.Data.Bool

type Eval (Not False) = True
type Eval (Not True) Source # 
Instance details

Defined in Fcf.Data.Bool

type Eval (Not True) = False
type Eval (Constraints (a ': as) :: Constraint -> Type) Source # 
Instance details

Defined in Fcf.Utils

type Eval (Constraints (a ': as) :: Constraint -> Type) = (a, Eval (Constraints as))
type Eval (Constraints ([] :: [Constraint])) Source # 
Instance details

Defined in Fcf.Utils

type Eval (Constraints ([] :: [Constraint])) = ()
type Eval (MEmpty_ :: a -> Type) Source # 
Instance details

Defined in Fcf.Class.Monoid

type Eval (MEmpty_ :: a -> Type) = (MEmpty :: a)
type Eval (False && b :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Bool

type Eval (False && b :: Bool -> Type) = False
type Eval (True && b :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Bool

type Eval (True && b :: Bool -> Type) = b
type Eval (a && True :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Bool

type Eval (a && True :: Bool -> Type) = a
type Eval (a && False :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Bool

type Eval (a && False :: Bool -> Type) = False
type Eval (False || b :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Bool

type Eval (False || b :: Bool -> Type) = b
type Eval (True || b :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Bool

type Eval (True || b :: Bool -> Type) = True
type Eval (a || False :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Bool

type Eval (a || False :: Bool -> Type) = a
type Eval (a || True :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Bool

type Eval (a || True :: Bool -> Type) = True
type Eval (IsJust (Nothing :: Maybe a) :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Common

type Eval (IsJust (Nothing :: Maybe a) :: Bool -> Type) = False
type Eval (IsJust (Just _a) :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Common

type Eval (IsJust (Just _a) :: Bool -> Type) = True
type Eval (IsNothing (Nothing :: Maybe a) :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Common

type Eval (IsNothing (Nothing :: Maybe a) :: Bool -> Type) = True
type Eval (IsNothing (Just _a) :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Common

type Eval (IsNothing (Just _a) :: Bool -> Type) = False
type Eval (a > b :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Nat

type Eval (a > b :: Bool -> Type) = Eval (Not =<< (a <= b))
type Eval (a < b :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Nat

type Eval (a < b :: Bool -> Type) = Eval (Not =<< (a >= b))
type Eval (a >= b :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Nat

type Eval (a >= b :: Bool -> Type) = b <=? a
type Eval (a <= b :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Nat

type Eval (a <= b :: Bool -> Type) = a <=? b
type Eval (Or lst :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (Or lst :: Bool -> Type) = Eval (Foldr (||) False lst)
type Eval (And lst :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (And lst :: Bool -> Type) = Eval (Foldr (&&) True lst)
type Eval (Null (a2 ': as) :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Null (a2 ': as) :: Bool -> Type) = False
type Eval (Null ([] :: [a]) :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Null ([] :: [a]) :: Bool -> Type) = True
type Eval (a ^ b :: Nat -> Type) Source # 
Instance details

Defined in Fcf.Data.Nat

type Eval (a ^ b :: Nat -> Type) = a ^ b
type Eval (a * b :: Nat -> Type) Source # 
Instance details

Defined in Fcf.Data.Nat

type Eval (a * b :: Nat -> Type) = a * b
type Eval (a - b :: Nat -> Type) Source # 
Instance details

Defined in Fcf.Data.Nat

type Eval (a - b :: Nat -> Type) = a - b
type Eval (a + b :: Nat -> Type) Source # 
Instance details

Defined in Fcf.Data.Nat

type Eval (a + b :: Nat -> Type) = a + b
type Eval (Sum ns :: Nat -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (Sum ns :: Nat -> Type) = Eval (Foldr (+) 0 ns)
type Eval (Length (a2 ': as) :: Nat -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Length (a2 ': as) :: Nat -> Type) = 1 + Eval (Length as)
type Eval (Length ([] :: [a]) :: Nat -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Length ([] :: [a]) :: Nat -> Type) = 0
type Eval (Pure x :: a -> Type) Source # 
Instance details

Defined in Fcf.Combinators

type Eval (Pure x :: a -> Type) = x
type Eval (Join e :: a -> Type) Source # 
Instance details

Defined in Fcf.Combinators

type Eval (Join e :: a -> Type) = Eval (Eval e)
type Eval (Error msg :: a -> Type) Source # 
Instance details

Defined in Fcf.Utils

type Eval (Error msg :: a -> Type) = (TypeError (Text msg) :: a)
type Eval (TError msg :: a -> Type) Source # 
Instance details

Defined in Fcf.Utils

type Eval (TError msg :: a -> Type) = (TypeError msg :: a)
type Eval (IsRight (Right _a :: Either a b) :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Common

type Eval (IsRight (Right _a :: Either a b) :: Bool -> Type) = True
type Eval (IsRight (Left _a :: Either a b) :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Common

type Eval (IsRight (Left _a :: Either a b) :: Bool -> Type) = False
type Eval (IsLeft (Right _a :: Either a b) :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Common

type Eval (IsLeft (Right _a :: Either a b) :: Bool -> Type) = False
type Eval (IsLeft (Left _a :: Either a b) :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.Common

type Eval (IsLeft (Left _a :: Either a b) :: Bool -> Type) = True
type Eval (Elem a2 as :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Elem a2 as :: Bool -> Type) = Eval ((IsJust :: Maybe Nat -> Bool -> Type) =<< FindIndex (TyEq a2 :: a1 -> Bool -> Type) as)
type Eval (IsInfixOf xs ys :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (IsInfixOf xs ys :: Bool -> Type) = Eval ((Any (IsPrefixOf xs) :: [[a]] -> Bool -> Type) =<< Tails ys)
type Eval (IsSuffixOf xs ys :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (IsSuffixOf xs ys :: Bool -> Type) = Eval (IsPrefixOf ((Reverse :: [a] -> [a] -> Type) @@ xs) ((Reverse :: [a] -> [a] -> Type) @@ ys))
type Eval (IsPrefixOf xs ys :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (IsPrefixOf xs ys :: Bool -> Type)
type Eval (a2 > b :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (a2 > b :: Bool -> Type)
type Eval (a2 < b :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (a2 < b :: Bool -> Type)
type Eval (a2 >= b :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (a2 >= b :: Bool -> Type)
type Eval (a2 <= b :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (a2 <= b :: Bool -> Type)
type Eval (Compare False True) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare True False) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare a a :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare a a :: Ordering -> Type) = EQ
type Eval (Compare (_x ': _xs) ([] :: [a]) :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare (_x ': _xs) ([] :: [a]) :: Ordering -> Type) = GT
type Eval (Compare ([] :: [k]) (_y ': _ys) :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare ([] :: [k]) (_y ': _ys) :: Ordering -> Type) = LT
type Eval (Compare (x ': xs) (y ': ys) :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare (x ': xs) (y ': ys) :: Ordering -> Type) = Eval (Compare x y) <> Eval (Compare xs ys)
type Eval (Compare ([] :: [k]) ([] :: [k]) :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare ([] :: [k]) ([] :: [k]) :: Ordering -> Type) = EQ
type Eval (Compare (Just _a) (Nothing :: Maybe a) :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare (Just _a) (Nothing :: Maybe a) :: Ordering -> Type) = GT
type Eval (Compare (Nothing :: Maybe a) (Just _b) :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare (Nothing :: Maybe a) (Just _b) :: Ordering -> Type) = LT
type Eval (Compare (Just a2) (Just b) :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare (Just a2) (Just b) :: Ordering -> Type) = Eval (Compare a2 b)
type Eval (Compare (Nothing :: Maybe a) (Nothing :: Maybe a) :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare (Nothing :: Maybe a) (Nothing :: Maybe a) :: Ordering -> Type) = EQ
type Eval (Compare LT EQ) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare LT EQ) = LT
type Eval (Compare LT GT) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare LT GT) = LT
type Eval (Compare EQ LT) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare EQ LT) = GT
type Eval (Compare EQ GT) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare EQ GT) = LT
type Eval (Compare GT LT) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare GT LT) = GT
type Eval (Compare GT EQ) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare GT EQ) = GT
type Eval (Compare a a :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare a a :: Ordering -> Type) = EQ
type Eval (Compare (Right _a :: Either a b) (Left _b :: Either a b) :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare (Right _a :: Either a b) (Left _b :: Either a b) :: Ordering -> Type) = GT
type Eval (Compare (Left _a :: Either a b) (Right _b :: Either a b) :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare (Left _a :: Either a b) (Right _b :: Either a b) :: Ordering -> Type) = LT
type Eval (Compare (Right a3 :: Either a2 a1) (Right b :: Either a2 a1) :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare (Right a3 :: Either a2 a1) (Right b :: Either a2 a1) :: Ordering -> Type) = Eval (Compare a3 b)
type Eval (Compare (Left a2 :: Either a1 b1) (Left b2 :: Either a1 b1) :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare (Left a2 :: Either a1 b1) (Left b2 :: Either a1 b1) :: Ordering -> Type) = Eval (Compare a2 b2)
type Eval (Compare a b :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare a b :: Ordering -> Type) = CmpNat a b
type Eval (Compare a b :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare a b :: Ordering -> Type) = CmpSymbol a b
type Eval (Compare a b :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare a b :: Ordering -> Type) = EQ
type Eval (Compare ((,) a3 a4) ((,) b1 b2) :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare ((,) a3 a4) ((,) b1 b2) :: Ordering -> Type) = Eval (Compare a3 b1) <> Eval (Compare a4 b2)
type Eval (Compare ((,,) a4 a5 a6) ((,,) b1 b2 b3) :: Ordering -> Type) Source # 
Instance details

Defined in Fcf.Class.Ord

type Eval (Compare ((,,) a4 a5 a6) ((,,) b1 b2 b3) :: Ordering -> Type) = (Eval (Compare a4 b1) <> Eval (Compare a5 b2)) <> Eval (Compare a6 b3)
type Eval (x .<> y :: a -> Type) Source # 
Instance details

Defined in Fcf.Class.Monoid

type Eval (x .<> y :: a -> Type) = x <> y
type Eval (Fst ((,) a2 _b) :: a1 -> Type) Source # 
Instance details

Defined in Fcf.Data.Common

type Eval (Fst ((,) a2 _b) :: a1 -> Type) = a2
type Eval (Snd ((,) _a b) :: a1 -> Type) Source # 
Instance details

Defined in Fcf.Data.Common

type Eval (Snd ((,) _a b) :: a1 -> Type) = b
type Eval (FromMaybe _a (Just b) :: a -> Type) Source # 
Instance details

Defined in Fcf.Data.Common

type Eval (FromMaybe _a (Just b) :: a -> Type) = b
type Eval (FromMaybe a2 (Nothing :: Maybe a1) :: a1 -> Type) Source # 
Instance details

Defined in Fcf.Data.Common

type Eval (FromMaybe a2 (Nothing :: Maybe a1) :: a1 -> Type) = a2
type Eval (Concat xs :: a -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (Concat xs :: a -> Type) = Eval (FoldMap (Pure :: a -> a -> Type) xs)
type Eval (Any p lst :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (Any p lst :: Bool -> Type) = Eval (Foldr (Bicomap p (Pure :: Bool -> Bool -> Type) (||)) False lst)
type Eval (All p lst :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (All p lst :: Bool -> Type) = Eval (Foldr (Bicomap p (Pure :: Bool -> Bool -> Type) (&&)) True lst)
type Eval (TyEq a b :: Bool -> Type) Source # 
Instance details

Defined in Fcf.Utils

type Eval (TyEq a b :: Bool -> Type)
type Eval (Pure1 f x :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Combinators

type Eval (Pure1 f x :: a2 -> Type) = f x
type Eval (k =<< e :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Combinators

type Eval (k =<< e :: a2 -> Type) = Eval (k (Eval e))
type Eval (f <$> e :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Combinators

type Eval (f <$> e :: a2 -> Type) = f (Eval e)
type Eval (f <*> e :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Combinators

type Eval (f <*> e :: a2 -> Type) = Eval f (Eval e)
type Eval (ConstFn a2 _b :: a1 -> Type) Source # 
Instance details

Defined in Fcf.Combinators

type Eval (ConstFn a2 _b :: a1 -> Type) = a2
type Eval (f $ a3 :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Combinators

type Eval (f $ a3 :: a2 -> Type) = Eval (f a3)
type Eval (UnBool fal tru True :: a -> Type) Source # 
Instance details

Defined in Fcf.Data.Bool

type Eval (UnBool fal tru True :: a -> Type) = Eval tru
type Eval (UnBool fal tru False :: a -> Type) Source # 
Instance details

Defined in Fcf.Data.Bool

type Eval (UnBool fal tru False :: a -> Type) = Eval fal
type Eval (x & f :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Data.Function

type Eval (x & f :: a2 -> Type) = Eval (f x)
type Eval (Case ms a :: k -> Type) Source # 
Instance details

Defined in Fcf.Utils

type Eval (Case ms a :: k -> Type)
type Eval (Uncurry f ((,) x y) :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Data.Common

type Eval (Uncurry f ((,) x y) :: a2 -> Type) = Eval (f x y)
type Eval (UnMaybe y f (Just x) :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Data.Common

type Eval (UnMaybe y f (Just x) :: a2 -> Type) = Eval (f x)
type Eval (UnMaybe y f (Nothing :: Maybe a1) :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Data.Common

type Eval (UnMaybe y f (Nothing :: Maybe a1) :: a2 -> Type) = Eval y
type Eval (FoldMap f (Right x :: Either a3 a1) :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (FoldMap f (Right x :: Either a3 a1) :: a2 -> Type) = Eval (f x)
type Eval (FoldMap f (Left _a :: Either a3 a1) :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (FoldMap f (Left _a :: Either a3 a1) :: a2 -> Type) = (MEmpty :: a2)
type Eval (FoldMap f (Just x) :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (FoldMap f (Just x) :: a2 -> Type) = Eval (f x)
type Eval (FoldMap f (Nothing :: Maybe a1) :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (FoldMap f (Nothing :: Maybe a1) :: a2 -> Type) = (MEmpty :: a2)
type Eval (FoldMap f (x ': xs) :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (FoldMap f (x ': xs) :: a2 -> Type) = Eval (f x) <> Eval (FoldMap f xs)
type Eval (FoldMap f ([] :: [a1]) :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (FoldMap f ([] :: [a1]) :: a2 -> Type) = (MEmpty :: a2)
type Eval (UnList y f xs :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (UnList y f xs :: a2 -> Type) = Eval (Foldr f y xs)
type Eval (Pure2 f x y :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Combinators

type Eval (Pure2 f x y :: a2 -> Type) = f x y
type Eval ((f <=< g) x :: a3 -> Type) Source # 
Instance details

Defined in Fcf.Combinators

type Eval ((f <=< g) x :: a3 -> Type) = Eval (f (Eval (g x)))
type Eval (LiftM2 f x y :: a3 -> Type) Source # 
Instance details

Defined in Fcf.Combinators

type Eval (LiftM2 f x y :: a3 -> Type) = Eval (f (Eval x) (Eval y))
type Eval (Flip f y x :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Combinators

type Eval (Flip f y x :: a2 -> Type) = Eval (f x y)
type Eval (UnEither f g (Right y :: Either a2 b) :: a1 -> Type) Source # 
Instance details

Defined in Fcf.Data.Common

type Eval (UnEither f g (Right y :: Either a2 b) :: a1 -> Type) = Eval (g y)
type Eval (UnEither f g (Left x :: Either a2 b) :: a1 -> Type) Source # 
Instance details

Defined in Fcf.Data.Common

type Eval (UnEither f g (Left x :: Either a2 b) :: a1 -> Type) = Eval (f x)
type Eval (Foldr f y (Right x :: Either a3 a1) :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (Foldr f y (Right x :: Either a3 a1) :: a2 -> Type) = Eval (f x y)
type Eval (Foldr f y (Left _a :: Either a3 a1) :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (Foldr f y (Left _a :: Either a3 a1) :: a2 -> Type) = y
type Eval (Foldr f y (Just x) :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (Foldr f y (Just x) :: a2 -> Type) = Eval (f x y)
type Eval (Foldr f y (Nothing :: Maybe a1) :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (Foldr f y (Nothing :: Maybe a1) :: a2 -> Type) = y
type Eval (Foldr f y (x ': xs) :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (Foldr f y (x ': xs) :: a2 -> Type) = Eval (f x (Eval (Foldr f y xs)))
type Eval (Foldr f y ([] :: [a1]) :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (Foldr f y ([] :: [a1]) :: a2 -> Type) = y
type Eval (On r f x y :: a3 -> Type) Source # 
Instance details

Defined in Fcf.Data.Function

type Eval (On r f x y :: a3 -> Type) = Eval (r (Eval (f x)) (Eval (f y)))
type Eval (Pure3 f x y z :: a2 -> Type) Source # 
Instance details

Defined in Fcf.Combinators

type Eval (Pure3 f x y z :: a2 -> Type) = f x y z
type Eval (LiftM3 f x y z :: a4 -> Type) Source # 
Instance details

Defined in Fcf.Combinators

type Eval (LiftM3 f x y z :: a4 -> Type) = Eval (f (Eval x) (Eval y) (Eval z))
type Eval (Bicomap f g r x y :: a4 -> Type) Source # 
Instance details

Defined in Fcf.Data.Function

type Eval (Bicomap f g r x y :: a4 -> Type) = Eval (r (Eval (f x)) (Eval (g y)))
type Eval (Tails (a2 ': as) :: [[a1]] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Tails (a2 ': as) :: [[a1]] -> Type) = (a2 ': as) ': Eval (Tails as)
type Eval (Tails ([] :: [a]) :: [[a]] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Tails ([] :: [a]) :: [[a]] -> Type) = ([] :: [[a]])
type Eval (Reverse l :: [a] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Reverse l :: [a] -> Type)
type Eval (Init (a2 ': ([] :: [a1])) :: Maybe [a1] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Init (a2 ': ([] :: [a1])) :: Maybe [a1] -> Type) = Just ([] :: [a1])
type Eval (Init ([] :: [a]) :: Maybe [a] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Init ([] :: [a]) :: Maybe [a] -> Type) = (Nothing :: Maybe [a])
type Eval (Tail (_a ': as) :: Maybe [a] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Tail (_a ': as) :: Maybe [a] -> Type) = Just as
type Eval (Tail ([] :: [a]) :: Maybe [a] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Tail ([] :: [a]) :: Maybe [a] -> Type) = (Nothing :: Maybe [a])
type Eval (Init (a2 ': (b ': as)) :: Maybe [a1] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Init (a2 ': (b ': as)) :: Maybe [a1] -> Type) = Eval ((Map (Cons a2) :: Maybe [a1] -> Maybe [a1] -> Type) =<< Init (b ': as))
type Eval (Head (a2 ': _as) :: Maybe a1 -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Head (a2 ': _as) :: Maybe a1 -> Type) = Just a2
type Eval (Head ([] :: [a]) :: Maybe a -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Head ([] :: [a]) :: Maybe a -> Type) = (Nothing :: Maybe a)
type Eval (Last (a2 ': (b ': as)) :: Maybe a1 -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Last (a2 ': (b ': as)) :: Maybe a1 -> Type) = Eval (Last (b ': as))
type Eval (Last (a2 ': ([] :: [a1])) :: Maybe a1 -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Last (a2 ': ([] :: [a1])) :: Maybe a1 -> Type) = Just a2
type Eval (Last ([] :: [a]) :: Maybe a -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Last ([] :: [a]) :: Maybe a -> Type) = (Nothing :: Maybe a)
type Eval (xs ++ ys :: [a] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (xs ++ ys :: [a] -> Type) = xs <> ys
type Eval (Cons a2 as :: [a1] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Cons a2 as :: [a1] -> Type) = a2 ': as
type Eval (Snoc lst a :: [k] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Snoc lst a :: [k] -> Type) = Eval (lst ++ (a ': ([] :: [k])))
type Eval (Intersperse _ ([] :: [a]) :: [a] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Intersperse _ ([] :: [a]) :: [a] -> Type) = ([] :: [a])
type Eval (Intersperse sep (x ': xs) :: [a] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Intersperse sep (x ': xs) :: [a] -> Type)
type Eval (Intercalate xs xss :: [a] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Intercalate xs xss :: [a] -> Type) = Eval ((Concat :: [[a]] -> [a] -> Type) =<< Intersperse xs xss)
type Eval (Replicate n a2 :: [a1] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Replicate n a2 :: [a1] -> Type)
type Eval (Take n as :: [a] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Take n as :: [a] -> Type)
type Eval (Drop n as :: [a] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Drop n as :: [a] -> Type)
type Eval (TakeWhile p (x ': xs) :: [a] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (TakeWhile p (x ': xs) :: [a] -> Type) = Eval (If (Eval (p x)) ((:) x <$> TakeWhile p xs) (Pure ([] :: [a])))
type Eval (TakeWhile p ([] :: [a]) :: [a] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (TakeWhile p ([] :: [a]) :: [a] -> Type) = ([] :: [a])
type Eval (DropWhile p (x ': xs) :: [a] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (DropWhile p (x ': xs) :: [a] -> Type) = Eval (If (Eval (p x)) (DropWhile p xs) (Pure (x ': xs)))
type Eval (DropWhile p ([] :: [a]) :: [a] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (DropWhile p ([] :: [a]) :: [a] -> Type) = ([] :: [a])
type Eval (Filter p (a2 ': as) :: [a1] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Filter p (a2 ': as) :: [a1] -> Type) = Eval (If (Eval (p a2)) ((:) a2 <$> Filter p as) (Filter p as))
type Eval (Filter _p ([] :: [a]) :: [a] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Filter _p ([] :: [a]) :: [a] -> Type) = ([] :: [a])
type Eval (FindIndex p (a2 ': as) :: Maybe Nat -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (FindIndex p (a2 ': as) :: Maybe Nat -> Type) = Eval (If (Eval (p a2)) (Pure (Just 0)) ((Map ((+) 1) :: Maybe Nat -> Maybe Nat -> Type) =<< FindIndex p as))
type Eval (FindIndex _p ([] :: [a]) :: Maybe Nat -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (FindIndex _p ([] :: [a]) :: Maybe Nat -> Type) = (Nothing :: Maybe Nat)
type Eval (Find p (a2 ': as) :: Maybe a1 -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Find p (a2 ': as) :: Maybe a1 -> Type) = Eval (If (Eval (p a2)) (Pure (Just a2)) (Find p as))
type Eval (Find _p ([] :: [a]) :: Maybe a -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Find _p ([] :: [a]) :: Maybe a -> Type) = (Nothing :: Maybe a)
type Eval (Zip as bs :: [(a, b)] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Zip as bs :: [(a, b)] -> Type) = Eval (ZipWith (Pure2 ((,) :: a -> b -> (a, b))) as bs)
type Eval (Unfoldr f c :: [a] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Unfoldr f c :: [a] -> Type)
type Eval (SetIndex n a' as :: [k] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (SetIndex n a' as :: [k] -> Type)
type Eval (Lookup a as :: Maybe b -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Lookup a as :: Maybe b -> Type) = Eval (Map (Snd :: (k, b) -> b -> Type) (Eval (Find ((TyEq a :: k -> Bool -> Type) <=< (Fst :: (k, b) -> k -> Type)) as)))
type Eval (Map f (a2 ': as) :: [b] -> Type) Source # 
Instance details

Defined in Fcf.Class.Functor

type Eval (Map f (a2 ': as) :: [b] -> Type) = Eval (f a2) ': Eval (Map f as)
type Eval (Map f ([] :: [a]) :: [b] -> Type) Source # 
Instance details

Defined in Fcf.Class.Functor

type Eval (Map f ([] :: [a]) :: [b] -> Type) = ([] :: [b])
type Eval (ConcatMap f xs :: [b] -> Type) Source # 
Instance details

Defined in Fcf.Class.Foldable

type Eval (ConcatMap f xs :: [b] -> Type) = Eval (FoldMap f xs)
type Eval (Map f (Just a3) :: Maybe a2 -> Type) Source # 
Instance details

Defined in Fcf.Class.Functor

type Eval (Map f (Just a3) :: Maybe a2 -> Type) = Just (Eval (f a3))
type Eval (Map f (Nothing :: Maybe a) :: Maybe b -> Type) Source # 
Instance details

Defined in Fcf.Class.Functor

type Eval (Map f (Nothing :: Maybe a) :: Maybe b -> Type) = (Nothing :: Maybe b)
type Eval (ZipWith f (a2 ': as) (b2 ': bs) :: [c] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (ZipWith f (a2 ': as) (b2 ': bs) :: [c] -> Type) = Eval (f a2 b2) ': Eval (ZipWith f as bs)
type Eval (ZipWith _f _as ([] :: [b]) :: [c] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (ZipWith _f _as ([] :: [b]) :: [c] -> Type) = ([] :: [c])
type Eval (ZipWith _f ([] :: [a]) _bs :: [c] -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (ZipWith _f ([] :: [a]) _bs :: [c] -> Type) = ([] :: [c])
type Eval (Span p lst :: ([a], [a]) -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Span p lst :: ([a], [a]) -> Type) = (,) (Eval (TakeWhile p lst)) (Eval (DropWhile p lst))
type Eval (Break p lst :: ([a], [a]) -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Break p lst :: ([a], [a]) -> Type) = Eval (Span (Not <=< p) lst)
type Eval (Partition p lst :: ([a], [a]) -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Partition p lst :: ([a], [a]) -> Type)
type Eval (Unzip as :: ([a], [b]) -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Unzip as :: ([a], [b]) -> Type) = Eval (Foldr (Cons2 :: (a, b) -> ([a], [b]) -> ([a], [b]) -> Type) ((,) ([] :: [a]) ([] :: [b])) (Eval as))
type Eval (Cons2 ((,) a3 b) ((,) as bs) :: ([a2], [a1]) -> Type) Source # 
Instance details

Defined in Fcf.Data.List

type Eval (Cons2 ((,) a3 b) ((,) as bs) :: ([a2], [a1]) -> Type) = (,) (a3 ': as) (b ': bs)
type Eval (Map f (Right a3 :: Either a2 a1) :: Either a2 b -> Type) Source # 
Instance details

Defined in Fcf.Class.Functor

type Eval (Map f (Right a3 :: Either a2 a1) :: Either a2 b -> Type) = (Right (Eval (f a3)) :: Either a2 b)
type Eval (Map f (Left x :: Either a2 a1) :: Either a2 b -> Type) Source # 
Instance details

Defined in Fcf.Class.Functor

type Eval (Map f (Left x :: Either a2 a1) :: Either a2 b -> Type) = (Left x :: Either a2 b)
type Eval (Map f ((,) x a2) :: (k2, k1) -> Type) Source # 
Instance details

Defined in Fcf.Class.Functor

type Eval (Map f ((,) x a2) :: (k2, k1) -> Type) = (,) x (Eval (f a2))
type Eval ((f *** f') ((,) b2 b'2) :: (k2, k1) -> Type) Source # 
Instance details

Defined in Fcf.Data.Common

type Eval ((f *** f') ((,) b2 b'2) :: (k2, k1) -> Type) = (,) (Eval (f b2)) (Eval (f' b'2))
type Eval (First f2 x :: f1 a' b' -> Type) Source # 
Instance details

Defined in Fcf.Class.Bifunctor

type Eval (First f2 x :: f1 a' b' -> Type) = Eval (Bimap f2 (Pure :: b' -> b' -> Type) x)
type Eval (Second g x :: f a' b' -> Type) Source # 
Instance details

Defined in Fcf.Class.Bifunctor

type Eval (Second g x :: f a' b' -> Type) = Eval (Bimap (Pure :: a' -> a' -> Type) g x)
type Eval (Bimap f g (Right y :: Either a b1) :: Either a' b2 -> Type) Source # 
Instance details

Defined in Fcf.Class.Bifunctor

type Eval (Bimap f g (Right y :: Either a b1) :: Either a' b2 -> Type) = (Right (Eval (g y)) :: Either a' b2)
type Eval (Bimap f g (Left x :: Either a1 b) :: Either a2 b' -> Type) Source # 
Instance details

Defined in Fcf.Class.Bifunctor

type Eval (Bimap f g (Left x :: Either a1 b) :: Either a2 b' -> Type) = (Left (Eval (f x)) :: Either a2 b')
type Eval (Bimap f g ((,) x y) :: (k2, k1) -> Type) Source # 
Instance details

Defined in Fcf.Class.Bifunctor

type Eval (Bimap f g ((,) x y) :: (k2, k1) -> Type) = (,) (Eval (f x)) (Eval (g y))
type Eval (Map f ((,,) x y a2) :: (k2, k3, k1) -> Type) Source # 
Instance details

Defined in Fcf.Class.Functor

type Eval (Map f ((,,) x y a2) :: (k2, k3, k1) -> Type) = (,,) x y (Eval (f a2))
type Eval (Map f ((,,,) x y z a2) :: (k2, k3, k4, k1) -> Type) Source # 
Instance details

Defined in Fcf.Class.Functor

type Eval (Map f ((,,,) x y z a2) :: (k2, k3, k4, k1) -> Type) = (,,,) x y z (Eval (f a2))
type Eval (Map f ((,,,,) x y z w a2) :: (k2, k3, k4, k5, k1) -> Type) Source # 
Instance details

Defined in Fcf.Class.Functor

type Eval (Map f ((,,,,) x y z w a2) :: (k2, k3, k4, k5, k1) -> Type) = (,,,,) x y z w (Eval (f a2))

type (@@) f x = Eval (f x) Source #

Apply and evaluate a unary type function.