hypertypes-0.1.0.2: Typed ASTs
Safe HaskellNone
LanguageHaskell2010

Hyper

Description

A convinience module which re-exports common functionality of the hypertypes library

Synopsis

Documentation

class Generic a #

Representable types of kind *. This class is derivable in GHC with the DeriveGeneric flag on.

A Generic instance must satisfy the following laws:

from . toid
to . fromid

Minimal complete definition

from, to

Instances

Instances details
Generic Bool

Since: base-4.6.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep Bool :: Type -> Type #

Methods

from :: Bool -> Rep Bool x #

to :: Rep Bool x -> Bool #

Generic Ordering

Since: base-4.6.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep Ordering :: Type -> Type #

Methods

from :: Ordering -> Rep Ordering x #

to :: Rep Ordering x -> Ordering #

Generic Exp 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Exp :: Type -> Type #

Methods

from :: Exp -> Rep Exp x #

to :: Rep Exp x -> Exp #

Generic Match 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Match :: Type -> Type #

Methods

from :: Match -> Rep Match x #

to :: Rep Match x -> Match #

Generic Clause 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Clause :: Type -> Type #

Methods

from :: Clause -> Rep Clause x #

to :: Rep Clause x -> Clause #

Generic Pat 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Pat :: Type -> Type #

Methods

from :: Pat -> Rep Pat x #

to :: Rep Pat x -> Pat #

Generic Type 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Type :: Type -> Type #

Methods

from :: Type -> Rep Type x #

to :: Rep Type x -> Type #

Generic Dec 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Dec :: Type -> Type #

Methods

from :: Dec -> Rep Dec x #

to :: Rep Dec x -> Dec #

Generic Name 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Name :: Type -> Type #

Methods

from :: Name -> Rep Name x #

to :: Rep Name x -> Name #

Generic FunDep 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep FunDep :: Type -> Type #

Methods

from :: FunDep -> Rep FunDep x #

to :: Rep FunDep x -> FunDep #

Generic InjectivityAnn 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep InjectivityAnn :: Type -> Type #

Generic Overlap 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Overlap :: Type -> Type #

Methods

from :: Overlap -> Rep Overlap x #

to :: Rep Overlap x -> Overlap #

Generic ()

Since: base-4.6.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep () :: Type -> Type #

Methods

from :: () -> Rep () x #

to :: Rep () x -> () #

Generic Version

Since: base-4.9.0.0

Instance details

Defined in Data.Version

Associated Types

type Rep Version :: Type -> Type #

Methods

from :: Version -> Rep Version x #

to :: Rep Version x -> Version #

Generic Void

Since: base-4.8.0.0

Instance details

Defined in Data.Void

Associated Types

type Rep Void :: Type -> Type #

Methods

from :: Void -> Rep Void x #

to :: Rep Void x -> Void #

Generic ExitCode 
Instance details

Defined in GHC.IO.Exception

Associated Types

type Rep ExitCode :: Type -> Type #

Methods

from :: ExitCode -> Rep ExitCode x #

to :: Rep ExitCode x -> ExitCode #

Generic All

Since: base-4.7.0.0

Instance details

Defined in Data.Semigroup.Internal

Associated Types

type Rep All :: Type -> Type #

Methods

from :: All -> Rep All x #

to :: Rep All x -> All #

Generic Any

Since: base-4.7.0.0

Instance details

Defined in Data.Semigroup.Internal

Associated Types

type Rep Any :: Type -> Type #

Methods

from :: Any -> Rep Any x #

to :: Rep Any x -> Any #

Generic Fixity

Since: base-4.7.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep Fixity :: Type -> Type #

Methods

from :: Fixity -> Rep Fixity x #

to :: Rep Fixity x -> Fixity #

Generic Associativity

Since: base-4.7.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep Associativity :: Type -> Type #

Generic SourceUnpackedness

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep SourceUnpackedness :: Type -> Type #

Generic SourceStrictness

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep SourceStrictness :: Type -> Type #

Generic DecidedStrictness

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep DecidedStrictness :: Type -> Type #

Generic Extension 
Instance details

Defined in GHC.LanguageExtensions.Type

Associated Types

type Rep Extension :: Type -> Type #

Generic ForeignSrcLang 
Instance details

Defined in GHC.ForeignSrcLang.Type

Associated Types

type Rep ForeignSrcLang :: Type -> Type #

Generic Stmt 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Stmt :: Type -> Type #

Methods

from :: Stmt -> Rep Stmt x #

to :: Rep Stmt x -> Stmt #

Generic ModName 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep ModName :: Type -> Type #

Methods

from :: ModName -> Rep ModName x #

to :: Rep ModName x -> ModName #

Generic Phases 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Phases :: Type -> Type #

Methods

from :: Phases -> Rep Phases x #

to :: Rep Phases x -> Phases #

Generic RuleBndr 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep RuleBndr :: Type -> Type #

Methods

from :: RuleBndr -> Rep RuleBndr x #

to :: Rep RuleBndr x -> RuleBndr #

Generic Pragma 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Pragma :: Type -> Type #

Methods

from :: Pragma -> Rep Pragma x #

to :: Rep Pragma x -> Pragma #

Generic DerivClause 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep DerivClause :: Type -> Type #

Generic DerivStrategy 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep DerivStrategy :: Type -> Type #

Generic TySynEqn 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep TySynEqn :: Type -> Type #

Methods

from :: TySynEqn -> Rep TySynEqn x #

to :: Rep TySynEqn x -> TySynEqn #

Generic Fixity 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Fixity :: Type -> Type #

Methods

from :: Fixity -> Rep Fixity x #

to :: Rep Fixity x -> Fixity #

Generic Info 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Info :: Type -> Type #

Methods

from :: Info -> Rep Info x #

to :: Rep Info x -> Info #

Generic Con 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Con :: Type -> Type #

Methods

from :: Con -> Rep Con x #

to :: Rep Con x -> Con #

Generic TyVarBndr 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep TyVarBndr :: Type -> Type #

Generic Doc 
Instance details

Defined in Text.PrettyPrint.HughesPJ

Associated Types

type Rep Doc :: Type -> Type #

Methods

from :: Doc -> Rep Doc x #

to :: Rep Doc x -> Doc #

Generic TextDetails 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

Associated Types

type Rep TextDetails :: Type -> Type #

Generic Style 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

Associated Types

type Rep Style :: Type -> Type #

Methods

from :: Style -> Rep Style x #

to :: Rep Style x -> Style #

Generic Mode 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

Associated Types

type Rep Mode :: Type -> Type #

Methods

from :: Mode -> Rep Mode x #

to :: Rep Mode x -> Mode #

Generic PkgName 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep PkgName :: Type -> Type #

Methods

from :: PkgName -> Rep PkgName x #

to :: Rep PkgName x -> PkgName #

Generic Module 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Module :: Type -> Type #

Methods

from :: Module -> Rep Module x #

to :: Rep Module x -> Module #

Generic OccName 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep OccName :: Type -> Type #

Methods

from :: OccName -> Rep OccName x #

to :: Rep OccName x -> OccName #

Generic NameFlavour 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep NameFlavour :: Type -> Type #

Generic NameSpace 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep NameSpace :: Type -> Type #

Generic Loc 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Loc :: Type -> Type #

Methods

from :: Loc -> Rep Loc x #

to :: Rep Loc x -> Loc #

Generic ModuleInfo 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep ModuleInfo :: Type -> Type #

Generic FixityDirection 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep FixityDirection :: Type -> Type #

Generic Lit 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Lit :: Type -> Type #

Methods

from :: Lit -> Rep Lit x #

to :: Rep Lit x -> Lit #

Generic Bytes 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Bytes :: Type -> Type #

Methods

from :: Bytes -> Rep Bytes x #

to :: Rep Bytes x -> Bytes #

Generic Body 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Body :: Type -> Type #

Methods

from :: Body -> Rep Body x #

to :: Rep Body x -> Body #

Generic Guard 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Guard :: Type -> Type #

Methods

from :: Guard -> Rep Guard x #

to :: Rep Guard x -> Guard #

Generic Range 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Range :: Type -> Type #

Methods

from :: Range -> Rep Range x #

to :: Rep Range x -> Range #

Generic TypeFamilyHead 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep TypeFamilyHead :: Type -> Type #

Generic Foreign 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Foreign :: Type -> Type #

Methods

from :: Foreign -> Rep Foreign x #

to :: Rep Foreign x -> Foreign #

Generic Callconv 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Callconv :: Type -> Type #

Methods

from :: Callconv -> Rep Callconv x #

to :: Rep Callconv x -> Callconv #

Generic Safety 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Safety :: Type -> Type #

Methods

from :: Safety -> Rep Safety x #

to :: Rep Safety x -> Safety #

Generic Inline 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Inline :: Type -> Type #

Methods

from :: Inline -> Rep Inline x #

to :: Rep Inline x -> Inline #

Generic RuleMatch 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep RuleMatch :: Type -> Type #

Generic AnnTarget 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep AnnTarget :: Type -> Type #

Generic SourceUnpackedness 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep SourceUnpackedness :: Type -> Type #

Generic SourceStrictness 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep SourceStrictness :: Type -> Type #

Generic DecidedStrictness 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep DecidedStrictness :: Type -> Type #

Generic Bang 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Bang :: Type -> Type #

Methods

from :: Bang -> Rep Bang x #

to :: Rep Bang x -> Bang #

Generic PatSynDir 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep PatSynDir :: Type -> Type #

Generic PatSynArgs 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep PatSynArgs :: Type -> Type #

Generic FamilyResultSig 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep FamilyResultSig :: Type -> Type #

Generic TyLit 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep TyLit :: Type -> Type #

Methods

from :: TyLit -> Rep TyLit x #

to :: Rep TyLit x -> TyLit #

Generic Role 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep Role :: Type -> Type #

Methods

from :: Role -> Rep Role x #

to :: Rep Role x -> Role #

Generic AnnLookup 
Instance details

Defined in Language.Haskell.TH.Syntax

Associated Types

type Rep AnnLookup :: Type -> Type #

Generic DatatypeInfo 
Instance details

Defined in Language.Haskell.TH.Datatype

Associated Types

type Rep DatatypeInfo :: Type -> Type #

Generic DatatypeVariant 
Instance details

Defined in Language.Haskell.TH.Datatype

Associated Types

type Rep DatatypeVariant :: Type -> Type #

Generic ConstructorInfo 
Instance details

Defined in Language.Haskell.TH.Datatype

Associated Types

type Rep ConstructorInfo :: Type -> Type #

Generic ConstructorVariant 
Instance details

Defined in Language.Haskell.TH.Datatype

Associated Types

type Rep ConstructorVariant :: Type -> Type #

Generic FieldStrictness 
Instance details

Defined in Language.Haskell.TH.Datatype

Associated Types

type Rep FieldStrictness :: Type -> Type #

Generic Unpackedness 
Instance details

Defined in Language.Haskell.TH.Datatype

Associated Types

type Rep Unpackedness :: Type -> Type #

Generic Strictness 
Instance details

Defined in Language.Haskell.TH.Datatype

Associated Types

type Rep Strictness :: Type -> Type #

Generic Specificity 
Instance details

Defined in Language.Haskell.TH.Datatype.TyVarBndr

Associated Types

type Rep Specificity :: Type -> Type #

Generic ScopeLevel Source # 
Instance details

Defined in Hyper.Infer.ScopeLevel

Associated Types

type Rep ScopeLevel :: Type -> Type #

Generic [a]

Since: base-4.6.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep [a] :: Type -> Type #

Methods

from :: [a] -> Rep [a] x #

to :: Rep [a] x -> [a] #

Generic (Maybe a)

Since: base-4.6.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (Maybe a) :: Type -> Type #

Methods

from :: Maybe a -> Rep (Maybe a) x #

to :: Rep (Maybe a) x -> Maybe a #

Generic (Par1 p)

Since: base-4.7.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (Par1 p) :: Type -> Type #

Methods

from :: Par1 p -> Rep (Par1 p) x #

to :: Rep (Par1 p) x -> Par1 p #

Generic (Complex a)

Since: base-4.9.0.0

Instance details

Defined in Data.Complex

Associated Types

type Rep (Complex a) :: Type -> Type #

Methods

from :: Complex a -> Rep (Complex a) x #

to :: Rep (Complex a) x -> Complex a #

Generic (Min a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Associated Types

type Rep (Min a) :: Type -> Type #

Methods

from :: Min a -> Rep (Min a) x #

to :: Rep (Min a) x -> Min a #

Generic (Max a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Associated Types

type Rep (Max a) :: Type -> Type #

Methods

from :: Max a -> Rep (Max a) x #

to :: Rep (Max a) x -> Max a #

Generic (First a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Associated Types

type Rep (First a) :: Type -> Type #

Methods

from :: First a -> Rep (First a) x #

to :: Rep (First a) x -> First a #

Generic (Last a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Associated Types

type Rep (Last a) :: Type -> Type #

Methods

from :: Last a -> Rep (Last a) x #

to :: Rep (Last a) x -> Last a #

Generic (WrappedMonoid m)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Associated Types

type Rep (WrappedMonoid m) :: Type -> Type #

Generic (Option a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Associated Types

type Rep (Option a) :: Type -> Type #

Methods

from :: Option a -> Rep (Option a) x #

to :: Rep (Option a) x -> Option a #

Generic (ZipList a)

Since: base-4.7.0.0

Instance details

Defined in Control.Applicative

Associated Types

type Rep (ZipList a) :: Type -> Type #

Methods

from :: ZipList a -> Rep (ZipList a) x #

to :: Rep (ZipList a) x -> ZipList a #

Generic (Identity a)

Since: base-4.8.0.0

Instance details

Defined in Data.Functor.Identity

Associated Types

type Rep (Identity a) :: Type -> Type #

Methods

from :: Identity a -> Rep (Identity a) x #

to :: Rep (Identity a) x -> Identity a #

Generic (First a)

Since: base-4.7.0.0

Instance details

Defined in Data.Monoid

Associated Types

type Rep (First a) :: Type -> Type #

Methods

from :: First a -> Rep (First a) x #

to :: Rep (First a) x -> First a #

Generic (Last a)

Since: base-4.7.0.0

Instance details

Defined in Data.Monoid

Associated Types

type Rep (Last a) :: Type -> Type #

Methods

from :: Last a -> Rep (Last a) x #

to :: Rep (Last a) x -> Last a #

Generic (Dual a)

Since: base-4.7.0.0

Instance details

Defined in Data.Semigroup.Internal

Associated Types

type Rep (Dual a) :: Type -> Type #

Methods

from :: Dual a -> Rep (Dual a) x #

to :: Rep (Dual a) x -> Dual a #

Generic (Endo a)

Since: base-4.7.0.0

Instance details

Defined in Data.Semigroup.Internal

Associated Types

type Rep (Endo a) :: Type -> Type #

Methods

from :: Endo a -> Rep (Endo a) x #

to :: Rep (Endo a) x -> Endo a #

Generic (Sum a)

Since: base-4.7.0.0

Instance details

Defined in Data.Semigroup.Internal

Associated Types

type Rep (Sum a) :: Type -> Type #

Methods

from :: Sum a -> Rep (Sum a) x #

to :: Rep (Sum a) x -> Sum a #

Generic (Product a)

Since: base-4.7.0.0

Instance details

Defined in Data.Semigroup.Internal

Associated Types

type Rep (Product a) :: Type -> Type #

Methods

from :: Product a -> Rep (Product a) x #

to :: Rep (Product a) x -> Product a #

Generic (Down a)

Since: base-4.12.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (Down a) :: Type -> Type #

Methods

from :: Down a -> Rep (Down a) x #

to :: Rep (Down a) x -> Down a #

Generic (NonEmpty a)

Since: base-4.6.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (NonEmpty a) :: Type -> Type #

Methods

from :: NonEmpty a -> Rep (NonEmpty a) x #

to :: Rep (NonEmpty a) x -> NonEmpty a #

Generic (Tree a)

Since: containers-0.5.8

Instance details

Defined in Data.Tree

Associated Types

type Rep (Tree a) :: Type -> Type #

Methods

from :: Tree a -> Rep (Tree a) x #

to :: Rep (Tree a) x -> Tree a #

Generic (FingerTree a)

Since: containers-0.6.1

Instance details

Defined in Data.Sequence.Internal

Associated Types

type Rep (FingerTree a) :: Type -> Type #

Methods

from :: FingerTree a -> Rep (FingerTree a) x #

to :: Rep (FingerTree a) x -> FingerTree a #

Generic (Digit a)

Since: containers-0.6.1

Instance details

Defined in Data.Sequence.Internal

Associated Types

type Rep (Digit a) :: Type -> Type #

Methods

from :: Digit a -> Rep (Digit a) x #

to :: Rep (Digit a) x -> Digit a #

Generic (Node a)

Since: containers-0.6.1

Instance details

Defined in Data.Sequence.Internal

Associated Types

type Rep (Node a) :: Type -> Type #

Methods

from :: Node a -> Rep (Node a) x #

to :: Rep (Node a) x -> Node a #

Generic (Elem a)

Since: containers-0.6.1

Instance details

Defined in Data.Sequence.Internal

Associated Types

type Rep (Elem a) :: Type -> Type #

Methods

from :: Elem a -> Rep (Elem a) x #

to :: Rep (Elem a) x -> Elem a #

Generic (ViewL a)

Since: containers-0.5.8

Instance details

Defined in Data.Sequence.Internal

Associated Types

type Rep (ViewL a) :: Type -> Type #

Methods

from :: ViewL a -> Rep (ViewL a) x #

to :: Rep (ViewL a) x -> ViewL a #

Generic (ViewR a)

Since: containers-0.5.8

Instance details

Defined in Data.Sequence.Internal

Associated Types

type Rep (ViewR a) :: Type -> Type #

Methods

from :: ViewR a -> Rep (ViewR a) x #

to :: Rep (ViewR a) x -> ViewR a #

Generic a => Generic (Generically a) 
Instance details

Defined in Generic.Data.Internal.Generically

Associated Types

type Rep (Generically a) :: Type -> Type #

Methods

from :: Generically a -> Rep (Generically a) x #

to :: Rep (Generically a) x -> Generically a #

Generic a => Generic (FiniteEnumeration a) 
Instance details

Defined in Generic.Data.Internal.Generically

Associated Types

type Rep (FiniteEnumeration a) :: Type -> Type #

Generic a => Generic (GenericProduct a) 
Instance details

Defined in Generic.Data.Internal.Generically

Associated Types

type Rep (GenericProduct a) :: Type -> Type #

Generic (Doc a) 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

Associated Types

type Rep (Doc a) :: Type -> Type #

Methods

from :: Doc a -> Rep (Doc a) x #

to :: Rep (Doc a) x -> Doc a #

Generic (Maybe a) 
Instance details

Defined in Data.Strict.Maybe

Associated Types

type Rep (Maybe a) :: Type -> Type #

Methods

from :: Maybe a -> Rep (Maybe a) x #

to :: Rep (Maybe a) x -> Maybe a #

Generic (Pure h) Source # 
Instance details

Defined in Hyper.Type.Pure

Associated Types

type Rep (Pure h) :: Type -> Type #

Methods

from :: Pure h -> Rep (Pure h) x #

to :: Rep (Pure h) x -> Pure h #

Generic (DiffP h) Source # 
Instance details

Defined in Hyper.Diff

Associated Types

type Rep (DiffP h) :: Type -> Type #

Methods

from :: DiffP h -> Rep (DiffP h) x #

to :: Rep (DiffP h) x -> DiffP h #

Generic (UVar t) Source # 
Instance details

Defined in Hyper.Unify.Binding

Associated Types

type Rep (UVar t) :: Type -> Type #

Methods

from :: UVar t -> Rep (UVar t) x #

to :: Rep (UVar t) x -> UVar t #

Generic (Binding t) Source # 
Instance details

Defined in Hyper.Unify.Binding

Associated Types

type Rep (Binding t) :: Type -> Type #

Methods

from :: Binding t -> Rep (Binding t) x #

to :: Rep (Binding t) x -> Binding t #

Generic (Prune h) Source # 
Instance details

Defined in Hyper.Type.Prune

Associated Types

type Rep (Prune h) :: Type -> Type #

Methods

from :: Prune h -> Rep (Prune h) x #

to :: Rep (Prune h) x -> Prune h #

Generic (QVars typ) Source # 
Instance details

Defined in Hyper.Type.AST.Scheme

Associated Types

type Rep (QVars typ) :: Type -> Type #

Methods

from :: QVars typ -> Rep (QVars typ) x #

to :: Rep (QVars typ) x -> QVars typ #

Generic (Either a b)

Since: base-4.6.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (Either a b) :: Type -> Type #

Methods

from :: Either a b -> Rep (Either a b) x #

to :: Rep (Either a b) x -> Either a b #

Generic (V1 p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (V1 p) :: Type -> Type #

Methods

from :: V1 p -> Rep (V1 p) x #

to :: Rep (V1 p) x -> V1 p #

Generic (U1 p)

Since: base-4.7.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (U1 p) :: Type -> Type #

Methods

from :: U1 p -> Rep (U1 p) x #

to :: Rep (U1 p) x -> U1 p #

Generic (a, b)

Since: base-4.6.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (a, b) :: Type -> Type #

Methods

from :: (a, b) -> Rep (a, b) x #

to :: Rep (a, b) x -> (a, b) #

Generic (Arg a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Associated Types

type Rep (Arg a b) :: Type -> Type #

Methods

from :: Arg a b -> Rep (Arg a b) x #

to :: Rep (Arg a b) x -> Arg a b #

Generic (WrappedMonad m a)

Since: base-4.7.0.0

Instance details

Defined in Control.Applicative

Associated Types

type Rep (WrappedMonad m a) :: Type -> Type #

Methods

from :: WrappedMonad m a -> Rep (WrappedMonad m a) x #

to :: Rep (WrappedMonad m a) x -> WrappedMonad m a #

Generic (Proxy t)

Since: base-4.6.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (Proxy t) :: Type -> Type #

Methods

from :: Proxy t -> Rep (Proxy t) x #

to :: Rep (Proxy t) x -> Proxy t #

Generic (Cofree f a) 
Instance details

Defined in Control.Comonad.Cofree

Associated Types

type Rep (Cofree f a) :: Type -> Type #

Methods

from :: Cofree f a -> Rep (Cofree f a) x #

to :: Rep (Cofree f a) x -> Cofree f a #

Generic (Free f a) 
Instance details

Defined in Control.Monad.Free

Associated Types

type Rep (Free f a) :: Type -> Type #

Methods

from :: Free f a -> Rep (Free f a) x #

to :: Rep (Free f a) x -> Free f a #

Generic (f a) => Generic (Generically1 f a) 
Instance details

Defined in Generic.Data.Internal.Generically

Associated Types

type Rep (Generically1 f a) :: Type -> Type #

Methods

from :: Generically1 f a -> Rep (Generically1 f a) x #

to :: Rep (Generically1 f a) x -> Generically1 f a #

Generic (Pair a b) 
Instance details

Defined in Data.Strict.Tuple

Associated Types

type Rep (Pair a b) :: Type -> Type #

Methods

from :: Pair a b -> Rep (Pair a b) x #

to :: Rep (Pair a b) x -> Pair a b #

Generic (These a b) 
Instance details

Defined in Data.Strict.These

Associated Types

type Rep (These a b) :: Type -> Type #

Methods

from :: These a b -> Rep (These a b) x #

to :: Rep (These a b) x -> These a b #

Generic (Either a b) 
Instance details

Defined in Data.Strict.Either

Associated Types

type Rep (Either a b) :: Type -> Type #

Methods

from :: Either a b -> Rep (Either a b) x #

to :: Rep (Either a b) x -> Either a b #

Generic (These a b) 
Instance details

Defined in Data.These

Associated Types

type Rep (These a b) :: Type -> Type #

Methods

from :: These a b -> Rep (These a b) x #

to :: Rep (These a b) x -> These a b #

Generic (Ann a h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Associated Types

type Rep (Ann a h) :: Type -> Type #

Methods

from :: Ann a h -> Rep (Ann a h) x #

to :: Rep (Ann a h) x -> Ann a h #

Generic (ANode c h) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Associated Types

type Rep (ANode c h) :: Type -> Type #

Methods

from :: ANode c h -> Rep (ANode c h) x #

to :: Rep (ANode c h) x -> ANode c h #

Generic (F f h) Source # 
Instance details

Defined in Hyper.Type.Functor

Associated Types

type Rep (F f h) :: Type -> Type #

Methods

from :: F f h -> Rep (F f h) x #

to :: Rep (F f h) x -> F f h #

Generic (FuncType typ h) Source # 
Instance details

Defined in Hyper.Type.AST.FuncType

Associated Types

type Rep (FuncType typ h) :: Type -> Type #

Methods

from :: FuncType typ h -> Rep (FuncType typ h) x #

to :: Rep (FuncType typ h) x -> FuncType typ h #

Generic (UnifyError t h) Source # 
Instance details

Defined in Hyper.Unify.Error

Associated Types

type Rep (UnifyError t h) :: Type -> Type #

Methods

from :: UnifyError t h -> Rep (UnifyError t h) x #

to :: Rep (UnifyError t h) x -> UnifyError t h #

Generic (UTerm v ast) Source # 
Instance details

Defined in Hyper.Unify.Term

Associated Types

type Rep (UTerm v ast) :: Type -> Type #

Methods

from :: UTerm v ast -> Rep (UTerm v ast) x #

to :: Rep (UTerm v ast) x -> UTerm v ast #

Generic (UTermBody v ast) Source # 
Instance details

Defined in Hyper.Unify.Term

Associated Types

type Rep (UTermBody v ast) :: Type -> Type #

Methods

from :: UTermBody v ast -> Rep (UTermBody v ast) x #

to :: Rep (UTermBody v ast) x -> UTermBody v ast #

Generic (GTerm v ast) Source # 
Instance details

Defined in Hyper.Unify.Generalize

Associated Types

type Rep (GTerm v ast) :: Type -> Type #

Methods

from :: GTerm v ast -> Rep (GTerm v ast) x #

to :: Rep (GTerm v ast) x -> GTerm v ast #

Generic (InferResult v e) Source # 
Instance details

Defined in Hyper.Infer.Result

Associated Types

type Rep (InferResult v e) :: Type -> Type #

Methods

from :: InferResult v e -> Rep (InferResult v e) x #

to :: Rep (InferResult v e) x -> InferResult v e #

Generic (BlameResult v e) Source # 
Instance details

Defined in Hyper.Infer.Blame

Associated Types

type Rep (BlameResult v e) :: Type -> Type #

Methods

from :: BlameResult v e -> Rep (BlameResult v e) x #

to :: Rep (BlameResult v e) x -> BlameResult v e #

Generic (QVarInstances h typ) Source # 
Instance details

Defined in Hyper.Type.AST.Scheme

Associated Types

type Rep (QVarInstances h typ) :: Type -> Type #

Methods

from :: QVarInstances h typ -> Rep (QVarInstances h typ) x #

to :: Rep (QVarInstances h typ) x -> QVarInstances h typ #

Generic (LoadedNominalDecl typ v) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Associated Types

type Rep (LoadedNominalDecl typ v) :: Type -> Type #

Methods

from :: LoadedNominalDecl typ v -> Rep (LoadedNominalDecl typ v) x #

to :: Rep (LoadedNominalDecl typ v) x -> LoadedNominalDecl typ v #

Generic (NominalDecl typ h) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Associated Types

type Rep (NominalDecl typ h) :: Type -> Type #

Methods

from :: NominalDecl typ h -> Rep (NominalDecl typ h) x #

to :: Rep (NominalDecl typ h) x -> NominalDecl typ h #

Generic (App expr h) Source # 
Instance details

Defined in Hyper.Type.AST.App

Associated Types

type Rep (App expr h) :: Type -> Type #

Methods

from :: App expr h -> Rep (App expr h) x #

to :: Rep (App expr h) x -> App expr h #

Generic (Rec1 f p)

Since: base-4.7.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (Rec1 f p) :: Type -> Type #

Methods

from :: Rec1 f p -> Rep (Rec1 f p) x #

to :: Rep (Rec1 f p) x -> Rec1 f p #

Generic (URec (Ptr ()) p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (URec (Ptr ()) p) :: Type -> Type #

Methods

from :: URec (Ptr ()) p -> Rep (URec (Ptr ()) p) x #

to :: Rep (URec (Ptr ()) p) x -> URec (Ptr ()) p #

Generic (URec Char p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (URec Char p) :: Type -> Type #

Methods

from :: URec Char p -> Rep (URec Char p) x #

to :: Rep (URec Char p) x -> URec Char p #

Generic (URec Double p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (URec Double p) :: Type -> Type #

Methods

from :: URec Double p -> Rep (URec Double p) x #

to :: Rep (URec Double p) x -> URec Double p #

Generic (URec Float p) 
Instance details

Defined in GHC.Generics

Associated Types

type Rep (URec Float p) :: Type -> Type #

Methods

from :: URec Float p -> Rep (URec Float p) x #

to :: Rep (URec Float p) x -> URec Float p #

Generic (URec Int p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (URec Int p) :: Type -> Type #

Methods

from :: URec Int p -> Rep (URec Int p) x #

to :: Rep (URec Int p) x -> URec Int p #

Generic (URec Word p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (URec Word p) :: Type -> Type #

Methods

from :: URec Word p -> Rep (URec Word p) x #

to :: Rep (URec Word p) x -> URec Word p #

Generic (a, b, c)

Since: base-4.6.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (a, b, c) :: Type -> Type #

Methods

from :: (a, b, c) -> Rep (a, b, c) x #

to :: Rep (a, b, c) x -> (a, b, c) #

Generic (WrappedArrow a b c)

Since: base-4.7.0.0

Instance details

Defined in Control.Applicative

Associated Types

type Rep (WrappedArrow a b c) :: Type -> Type #

Methods

from :: WrappedArrow a b c -> Rep (WrappedArrow a b c) x #

to :: Rep (WrappedArrow a b c) x -> WrappedArrow a b c #

Generic (Kleisli m a b)

Since: base-4.14.0.0

Instance details

Defined in Control.Arrow

Associated Types

type Rep (Kleisli m a b) :: Type -> Type #

Methods

from :: Kleisli m a b -> Rep (Kleisli m a b) x #

to :: Rep (Kleisli m a b) x -> Kleisli m a b #

Generic (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Associated Types

type Rep (Const a b) :: Type -> Type #

Methods

from :: Const a b -> Rep (Const a b) x #

to :: Rep (Const a b) x -> Const a b #

Generic (Ap f a)

Since: base-4.12.0.0

Instance details

Defined in Data.Monoid

Associated Types

type Rep (Ap f a) :: Type -> Type #

Methods

from :: Ap f a -> Rep (Ap f a) x #

to :: Rep (Ap f a) x -> Ap f a #

Generic (Alt f a)

Since: base-4.8.0.0

Instance details

Defined in Data.Semigroup.Internal

Associated Types

type Rep (Alt f a) :: Type -> Type #

Methods

from :: Alt f a -> Rep (Alt f a) x #

to :: Rep (Alt f a) x -> Alt f a #

Generic (Join p a) 
Instance details

Defined in Data.Bifunctor.Join

Associated Types

type Rep (Join p a) :: Type -> Type #

Methods

from :: Join p a -> Rep (Join p a) x #

to :: Rep (Join p a) x -> Join p a #

Generic (Fix p a) 
Instance details

Defined in Data.Bifunctor.Fix

Associated Types

type Rep (Fix p a) :: Type -> Type #

Methods

from :: Fix p a -> Rep (Fix p a) x #

to :: Rep (Fix p a) x -> Fix p a #

Generic (FreeF f a b) 
Instance details

Defined in Control.Monad.Trans.Free

Associated Types

type Rep (FreeF f a b) :: Type -> Type #

Methods

from :: FreeF f a b -> Rep (FreeF f a b) x #

to :: Rep (FreeF f a b) x -> FreeF f a b #

Generic (CofreeF f a b) 
Instance details

Defined in Control.Comonad.Trans.Cofree

Associated Types

type Rep (CofreeF f a b) :: Type -> Type #

Methods

from :: CofreeF f a b -> Rep (CofreeF f a b) x #

to :: Rep (CofreeF f a b) x -> CofreeF f a b #

Generic (Tagged s b) 
Instance details

Defined in Data.Tagged

Associated Types

type Rep (Tagged s b) :: Type -> Type #

Methods

from :: Tagged s b -> Rep (Tagged s b) x #

to :: Rep (Tagged s b) x -> Tagged s b #

Generic (HFlip f x h) Source # 
Instance details

Defined in Hyper.Combinator.Flip

Associated Types

type Rep (HFlip f x h) :: Type -> Type #

Methods

from :: HFlip f x h -> Rep (HFlip f x h) x0 #

to :: Rep (HFlip f x h) x0 -> HFlip f x h #

Generic (HCompose a b h) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Associated Types

type Rep (HCompose a b h) :: Type -> Type #

Methods

from :: HCompose a b h -> Rep (HCompose a b h) x #

to :: Rep (HCompose a b h) x -> HCompose a b h #

Generic (TermMap h expr f) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Associated Types

type Rep (TermMap h expr f) :: Type -> Type #

Methods

from :: TermMap h expr f -> Rep (TermMap h expr f) x #

to :: Rep (TermMap h expr f) x -> TermMap h expr f #

Generic (CommonBody a b e) Source # 
Instance details

Defined in Hyper.Diff

Associated Types

type Rep (CommonBody a b e) :: Type -> Type #

Methods

from :: CommonBody a b e -> Rep (CommonBody a b e) x #

to :: Rep (CommonBody a b e) x -> CommonBody a b e #

Generic (Diff a b e) Source # 
Instance details

Defined in Hyper.Diff

Associated Types

type Rep (Diff a b e) :: Type -> Type #

Methods

from :: Diff a b e -> Rep (Diff a b e) x #

to :: Rep (Diff a b e) x -> Diff a b e #

Generic (Var v expr h) Source # 
Instance details

Defined in Hyper.Type.AST.Var

Associated Types

type Rep (Var v expr h) :: Type -> Type #

Methods

from :: Var v expr h -> Rep (Var v expr h) x #

to :: Rep (Var v expr h) x -> Var v expr h #

Generic (Scheme varTypes typ h) Source # 
Instance details

Defined in Hyper.Type.AST.Scheme

Associated Types

type Rep (Scheme varTypes typ h) :: Type -> Type #

Methods

from :: Scheme varTypes typ h -> Rep (Scheme varTypes typ h) x #

to :: Rep (Scheme varTypes typ h) x -> Scheme varTypes typ h #

Generic (TypeSig vars term h) Source # 
Instance details

Defined in Hyper.Type.AST.TypeSig

Associated Types

type Rep (TypeSig vars term h) :: Type -> Type #

Methods

from :: TypeSig vars term h -> Rep (TypeSig vars term h) x #

to :: Rep (TypeSig vars term h) x -> TypeSig vars term h #

Generic (FromNom nomId term h) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Associated Types

type Rep (FromNom nomId term h) :: Type -> Type #

Methods

from :: FromNom nomId term h -> Rep (FromNom nomId term h) x #

to :: Rep (FromNom nomId term h) x -> FromNom nomId term h #

Generic (ToNom nomId term h) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Associated Types

type Rep (ToNom nomId term h) :: Type -> Type #

Methods

from :: ToNom nomId term h -> Rep (ToNom nomId term h) x #

to :: Rep (ToNom nomId term h) x -> ToNom nomId term h #

Generic (NominalInst nomId varTypes h) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Associated Types

type Rep (NominalInst nomId varTypes h) :: Type -> Type #

Methods

from :: NominalInst nomId varTypes h -> Rep (NominalInst nomId varTypes h) x #

to :: Rep (NominalInst nomId varTypes h) x -> NominalInst nomId varTypes h #

Generic (Let v expr h) Source # 
Instance details

Defined in Hyper.Type.AST.Let

Associated Types

type Rep (Let v expr h) :: Type -> Type #

Methods

from :: Let v expr h -> Rep (Let v expr h) x #

to :: Rep (Let v expr h) x -> Let v expr h #

Generic (Lam v expr h) Source # 
Instance details

Defined in Hyper.Type.AST.Lam

Associated Types

type Rep (Lam v expr h) :: Type -> Type #

Methods

from :: Lam v expr h -> Rep (Lam v expr h) x #

to :: Rep (Lam v expr h) x -> Lam v expr h #

Generic (K1 i c p)

Since: base-4.7.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (K1 i c p) :: Type -> Type #

Methods

from :: K1 i c p -> Rep (K1 i c p) x #

to :: Rep (K1 i c p) x -> K1 i c p #

Generic ((f :+: g) p)

Since: base-4.7.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep ((f :+: g) p) :: Type -> Type #

Methods

from :: (f :+: g) p -> Rep ((f :+: g) p) x #

to :: Rep ((f :+: g) p) x -> (f :+: g) p #

Generic ((f :*: g) p)

Since: base-4.7.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep ((f :*: g) p) :: Type -> Type #

Methods

from :: (f :*: g) p -> Rep ((f :*: g) p) x #

to :: Rep ((f :*: g) p) x -> (f :*: g) p #

Generic (a, b, c, d)

Since: base-4.6.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (a, b, c, d) :: Type -> Type #

Methods

from :: (a, b, c, d) -> Rep (a, b, c, d) x #

to :: Rep (a, b, c, d) x -> (a, b, c, d) #

Generic (Product f g a)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Product

Associated Types

type Rep (Product f g a) :: Type -> Type #

Methods

from :: Product f g a -> Rep (Product f g a) x #

to :: Rep (Product f g a) x -> Product f g a #

Generic (Sum f g a)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Sum

Associated Types

type Rep (Sum f g a) :: Type -> Type #

Methods

from :: Sum f g a -> Rep (Sum f g a) x #

to :: Rep (Sum f g a) x -> Sum f g a #

Generic (FlatRowExtends key val rest h) Source # 
Instance details

Defined in Hyper.Type.AST.Row

Associated Types

type Rep (FlatRowExtends key val rest h) :: Type -> Type #

Methods

from :: FlatRowExtends key val rest h -> Rep (FlatRowExtends key val rest h) x #

to :: Rep (FlatRowExtends key val rest h) x -> FlatRowExtends key val rest h #

Generic (RowExtend key val rest h) Source # 
Instance details

Defined in Hyper.Type.AST.Row

Associated Types

type Rep (RowExtend key val rest h) :: Type -> Type #

Methods

from :: RowExtend key val rest h -> Rep (RowExtend key val rest h) x #

to :: Rep (RowExtend key val rest h) x -> RowExtend key val rest h #

Generic (TypedLam var typ expr h) Source # 
Instance details

Defined in Hyper.Type.AST.TypedLam

Associated Types

type Rep (TypedLam var typ expr h) :: Type -> Type #

Methods

from :: TypedLam var typ expr h -> Rep (TypedLam var typ expr h) x #

to :: Rep (TypedLam var typ expr h) x -> TypedLam var typ expr h #

Generic (M1 i c f p)

Since: base-4.7.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (M1 i c f p) :: Type -> Type #

Methods

from :: M1 i c f p -> Rep (M1 i c f p) x #

to :: Rep (M1 i c f p) x -> M1 i c f p #

Generic ((f :.: g) p)

Since: base-4.7.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep ((f :.: g) p) :: Type -> Type #

Methods

from :: (f :.: g) p -> Rep ((f :.: g) p) x #

to :: Rep ((f :.: g) p) x -> (f :.: g) p #

Generic (a, b, c, d, e)

Since: base-4.6.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (a, b, c, d, e) :: Type -> Type #

Methods

from :: (a, b, c, d, e) -> Rep (a, b, c, d, e) x #

to :: Rep (a, b, c, d, e) x -> (a, b, c, d, e) #

Generic (Compose f g a)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Compose

Associated Types

type Rep (Compose f g a) :: Type -> Type #

Methods

from :: Compose f g a -> Rep (Compose f g a) x #

to :: Rep (Compose f g a) x -> Compose f g a #

Generic (WrappedBifunctor p a b) 
Instance details

Defined in Data.Bifunctor.Wrapped

Associated Types

type Rep (WrappedBifunctor p a b) :: Type -> Type #

Methods

from :: WrappedBifunctor p a b -> Rep (WrappedBifunctor p a b) x #

to :: Rep (WrappedBifunctor p a b) x -> WrappedBifunctor p a b #

Generic (Joker g a b) 
Instance details

Defined in Data.Bifunctor.Joker

Associated Types

type Rep (Joker g a b) :: Type -> Type #

Methods

from :: Joker g a b -> Rep (Joker g a b) x #

to :: Rep (Joker g a b) x -> Joker g a b #

Generic (Flip p a b) 
Instance details

Defined in Data.Bifunctor.Flip

Associated Types

type Rep (Flip p a b) :: Type -> Type #

Methods

from :: Flip p a b -> Rep (Flip p a b) x #

to :: Rep (Flip p a b) x -> Flip p a b #

Generic (Clown f a b) 
Instance details

Defined in Data.Bifunctor.Clown

Associated Types

type Rep (Clown f a b) :: Type -> Type #

Methods

from :: Clown f a b -> Rep (Clown f a b) x #

to :: Rep (Clown f a b) x -> Clown f a b #

Generic (a, b, c, d, e, f)

Since: base-4.6.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (a, b, c, d, e, f) :: Type -> Type #

Methods

from :: (a, b, c, d, e, f) -> Rep (a, b, c, d, e, f) x #

to :: Rep (a, b, c, d, e, f) x -> (a, b, c, d, e, f) #

Generic (Sum p q a b) 
Instance details

Defined in Data.Bifunctor.Sum

Associated Types

type Rep (Sum p q a b) :: Type -> Type #

Methods

from :: Sum p q a b -> Rep (Sum p q a b) x #

to :: Rep (Sum p q a b) x -> Sum p q a b #

Generic (Product f g a b) 
Instance details

Defined in Data.Bifunctor.Product

Associated Types

type Rep (Product f g a b) :: Type -> Type #

Methods

from :: Product f g a b -> Rep (Product f g a b) x #

to :: Rep (Product f g a b) x -> Product f g a b #

Generic (a, b, c, d, e, f, g)

Since: base-4.6.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (a, b, c, d, e, f, g) :: Type -> Type #

Methods

from :: (a, b, c, d, e, f, g) -> Rep (a, b, c, d, e, f, g) x #

to :: Rep (a, b, c, d, e, f, g) x -> (a, b, c, d, e, f, g) #

Generic (Tannen f p a b) 
Instance details

Defined in Data.Bifunctor.Tannen

Associated Types

type Rep (Tannen f p a b) :: Type -> Type #

Methods

from :: Tannen f p a b -> Rep (Tannen f p a b) x #

to :: Rep (Tannen f p a b) x -> Tannen f p a b #

Generic (Biff p f g a b) 
Instance details

Defined in Data.Bifunctor.Biff

Associated Types

type Rep (Biff p f g a b) :: Type -> Type #

Methods

from :: Biff p f g a b -> Rep (Biff p f g a b) x #

to :: Rep (Biff p f g a b) x -> Biff p f g a b #

data Constraint #

The kind of constraints, like Show a

data ((f :: k -> Type) :*: (g :: k -> Type)) (p :: k) infixr 6 #

Products: encode multiple arguments to constructors

Constructors

(f p) :*: (g p) infixr 6 

Instances

Instances details
(GPlated a f, GPlated a g) => GPlated a (f :*: g :: k -> Type) 
Instance details

Defined in Control.Lens.Plated

Methods

gplate' :: forall (p :: k0). Traversal' ((f :*: g) p) a

(GPlated1 f g, GPlated1 f h) => GPlated1 (f :: k -> Type) (g :*: h :: k -> Type)

recursive match

Instance details

Defined in Control.Lens.Plated

Methods

gplate1' :: forall (a :: k0). Traversal' ((g :*: h) a) (f a)

Generic1 (f :*: g :: k -> Type)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep1 (f :*: g) :: k -> Type #

Methods

from1 :: forall (a :: k0). (f :*: g) a -> Rep1 (f :*: g) a #

to1 :: forall (a :: k0). Rep1 (f :*: g) a -> (f :*: g) a #

(GShowFields p f, GShowFields p g) => GShowFields p (f :*: g) 
Instance details

Defined in Generic.Data.Internal.Show

Methods

gPrecShowsFields :: p (ShowsPrec a) -> (f :*: g) a -> [PrecShowS] #

(GShowNamed p f, GShowNamed p g) => GShowNamed p (f :*: g) 
Instance details

Defined in Generic.Data.Internal.Show

Methods

gPrecShowsNamed :: p (ShowsPrec a) -> (f :*: g) a -> ShowFields #

(GTraverse arr f, GTraverse arr g) => GTraverse arr (f :*: g) 
Instance details

Defined in Generic.Data.Internal.Traversable

Methods

gtraverse_ :: forall (f0 :: Type -> Type) a b. Applicative f0 => arr f0 a b -> (f :*: g) a -> Aps f0 ((f :*: g) b) #

(GNFData arity a, GNFData arity b) => GNFData arity (a :*: b) 
Instance details

Defined in Control.DeepSeq

Methods

grnf :: RnfArgs arity a0 -> (a :*: b) a0 -> ()

(p ~ GT (GSize s) n, p ~ GT (GSize t) n, GIxed' p n s s' t t' a b) => GIxed (n :: Type) (s :*: s' :: Type -> Type) (t :*: t' :: Type -> Type) a b 
Instance details

Defined in Control.Lens.Tuple

Methods

gix :: forall f (x :: k1). f n -> Lens ((s :*: s') x) ((t :*: t') x) a b

(FunctorWithIndex i f, FunctorWithIndex j g) => FunctorWithIndex (Either i j) (f :*: g) 
Instance details

Defined in WithIndex

Methods

imap :: (Either i j -> a -> b) -> (f :*: g) a -> (f :*: g) b #

(FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex (Either i j) (f :*: g) 
Instance details

Defined in WithIndex

Methods

ifoldMap :: Monoid m => (Either i j -> a -> m) -> (f :*: g) a -> m #

ifoldMap' :: Monoid m => (Either i j -> a -> m) -> (f :*: g) a -> m #

ifoldr :: (Either i j -> a -> b -> b) -> b -> (f :*: g) a -> b #

ifoldl :: (Either i j -> b -> a -> b) -> b -> (f :*: g) a -> b #

ifoldr' :: (Either i j -> a -> b -> b) -> b -> (f :*: g) a -> b #

ifoldl' :: (Either i j -> b -> a -> b) -> b -> (f :*: g) a -> b #

(TraversableWithIndex i f, TraversableWithIndex j g) => TraversableWithIndex (Either i j) (f :*: g) 
Instance details

Defined in WithIndex

Methods

itraverse :: Applicative f0 => (Either i j -> a -> f0 b) -> (f :*: g) a -> f0 ((f :*: g) b) #

(Monad f, Monad g) => Monad (f :*: g)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

(>>=) :: (f :*: g) a -> (a -> (f :*: g) b) -> (f :*: g) b #

(>>) :: (f :*: g) a -> (f :*: g) b -> (f :*: g) b #

return :: a -> (f :*: g) a #

(Functor f, Functor g) => Functor (f :*: g)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

fmap :: (a -> b) -> (f :*: g) a -> (f :*: g) b #

(<$) :: a -> (f :*: g) b -> (f :*: g) a #

(Applicative f, Applicative g) => Applicative (f :*: g)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

pure :: a -> (f :*: g) a #

(<*>) :: (f :*: g) (a -> b) -> (f :*: g) a -> (f :*: g) b #

liftA2 :: (a -> b -> c) -> (f :*: g) a -> (f :*: g) b -> (f :*: g) c #

(*>) :: (f :*: g) a -> (f :*: g) b -> (f :*: g) b #

(<*) :: (f :*: g) a -> (f :*: g) b -> (f :*: g) a #

(Foldable f, Foldable g) => Foldable (f :*: g)

Since: base-4.9.0.0

Instance details

Defined in Data.Foldable

Methods

fold :: Monoid m => (f :*: g) m -> m #

foldMap :: Monoid m => (a -> m) -> (f :*: g) a -> m #

foldMap' :: Monoid m => (a -> m) -> (f :*: g) a -> m #

foldr :: (a -> b -> b) -> b -> (f :*: g) a -> b #

foldr' :: (a -> b -> b) -> b -> (f :*: g) a -> b #

foldl :: (b -> a -> b) -> b -> (f :*: g) a -> b #

foldl' :: (b -> a -> b) -> b -> (f :*: g) a -> b #

foldr1 :: (a -> a -> a) -> (f :*: g) a -> a #

foldl1 :: (a -> a -> a) -> (f :*: g) a -> a #

toList :: (f :*: g) a -> [a] #

null :: (f :*: g) a -> Bool #

length :: (f :*: g) a -> Int #

elem :: Eq a => a -> (f :*: g) a -> Bool #

maximum :: Ord a => (f :*: g) a -> a #

minimum :: Ord a => (f :*: g) a -> a #

sum :: Num a => (f :*: g) a -> a #

product :: Num a => (f :*: g) a -> a #

(Traversable f, Traversable g) => Traversable (f :*: g)

Since: base-4.9.0.0

Instance details

Defined in Data.Traversable

Methods

traverse :: Applicative f0 => (a -> f0 b) -> (f :*: g) a -> f0 ((f :*: g) b) #

sequenceA :: Applicative f0 => (f :*: g) (f0 a) -> f0 ((f :*: g) a) #

mapM :: Monad m => (a -> m b) -> (f :*: g) a -> m ((f :*: g) b) #

sequence :: Monad m => (f :*: g) (m a) -> m ((f :*: g) a) #

(Distributive a, Distributive b) => Distributive (a :*: b) 
Instance details

Defined in Data.Distributive

Methods

distribute :: Functor f => f ((a :*: b) a0) -> (a :*: b) (f a0) #

collect :: Functor f => (a0 -> (a :*: b) b0) -> f a0 -> (a :*: b) (f b0) #

distributeM :: Monad m => m ((a :*: b) a0) -> (a :*: b) (m a0) #

collectM :: Monad m => (a0 -> (a :*: b) b0) -> m a0 -> (a :*: b) (m b0) #

(Contravariant f, Contravariant g) => Contravariant (f :*: g) 
Instance details

Defined in Data.Functor.Contravariant

Methods

contramap :: (a -> b) -> (f :*: g) b -> (f :*: g) a #

(>$) :: b -> (f :*: g) b -> (f :*: g) a #

(Representable f, Representable g) => Representable (f :*: g) 
Instance details

Defined in Data.Functor.Rep

Associated Types

type Rep (f :*: g) #

Methods

tabulate :: (Rep (f :*: g) -> a) -> (f :*: g) a #

index :: (f :*: g) a -> Rep (f :*: g) -> a #

(Alternative f, Alternative g) => Alternative (f :*: g)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

empty :: (f :*: g) a #

(<|>) :: (f :*: g) a -> (f :*: g) a -> (f :*: g) a #

some :: (f :*: g) a -> (f :*: g) [a] #

many :: (f :*: g) a -> (f :*: g) [a] #

(MonadPlus f, MonadPlus g) => MonadPlus (f :*: g)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

mzero :: (f :*: g) a #

mplus :: (f :*: g) a -> (f :*: g) a -> (f :*: g) a #

(GFoldMap f, GFoldMap g) => GFoldMap (f :*: g) 
Instance details

Defined in Generic.Data.Internal.Traversable

Methods

gfoldMap_ :: Monoid m => (a -> m) -> (f :*: g) a -> EndoM m #

(Apply f, Apply g) => Apply (f :*: g) 
Instance details

Defined in Data.Functor.Bind.Class

Methods

(<.>) :: (f :*: g) (a -> b) -> (f :*: g) a -> (f :*: g) b #

(.>) :: (f :*: g) a -> (f :*: g) b -> (f :*: g) b #

(<.) :: (f :*: g) a -> (f :*: g) b -> (f :*: g) a #

liftF2 :: (a -> b -> c) -> (f :*: g) a -> (f :*: g) b -> (f :*: g) c #

(GIndex f, GIndex g) => GIndex (f :*: g) 
Instance details

Defined in Data.Functor.Rep

Methods

gindex' :: (f :*: g) a -> GRep' (f :*: g) -> a

(GTabulate f, GTabulate g) => GTabulate (f :*: g) 
Instance details

Defined in Data.Functor.Rep

Methods

gtabulate' :: (GRep' (f :*: g) -> a) -> (f :*: g) a

(HNodes a, HNodes b) => HNodes (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Nodes

Associated Types

type HNodesConstraint (a :*: b) c Source #

type HWitnessType (a :*: b) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (a :*: b) c => HWitness (a :*: b) n -> Proxy c -> (c n => r) -> r Source #

(HPointed a, HPointed b) => HPointed (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Pointed

Methods

hpure :: (forall (n :: HyperType). HWitness (a :*: b) n -> p # n) -> (a :*: b) # p Source #

(HFunctor a, HFunctor b) => HFunctor (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Functor

Methods

hmap :: (forall (n :: HyperType). HWitness (a :*: b) n -> (p # n) -> q # n) -> ((a :*: b) # p) -> (a :*: b) # q Source #

(HFoldable a, HFoldable b) => HFoldable (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Foldable

Methods

hfoldMap :: Monoid a0 => (forall (n :: HyperType). HWitness (a :*: b) n -> (p # n) -> a0) -> ((a :*: b) # p) -> a0 Source #

(HTraversable a, HTraversable b) => HTraversable (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Traversable

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => ((a :*: b) # ContainedH f p) -> f ((a :*: b) # p) Source #

(HApply a, HApply b) => HApply (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Apply

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). ((a :*: b) # p) -> ((a :*: b) # q) -> (a :*: b) # (p :*: q) Source #

(ZipMatch a, ZipMatch b) => ZipMatch (a :*: b) Source # 
Instance details

Defined in Hyper.Class.ZipMatch

Methods

zipMatch :: forall (p :: HyperType) (q :: HyperType). ((a :*: b) # p) -> ((a :*: b) # q) -> Maybe ((a :*: b) # (p :*: q)) Source #

(Eq (f p), Eq (g p)) => Eq ((f :*: g) p)

Since: base-4.7.0.0

Instance details

Defined in GHC.Generics

Methods

(==) :: (f :*: g) p -> (f :*: g) p -> Bool #

(/=) :: (f :*: g) p -> (f :*: g) p -> Bool #

(Typeable f, Typeable g, Data p, Data (f p), Data (g p)) => Data ((f :*: g) p)

Since: base-4.9.0.0

Instance details

Defined in Data.Data

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g0. g0 -> c g0) -> (f :*: g) p -> c ((f :*: g) p) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ((f :*: g) p) #

toConstr :: (f :*: g) p -> Constr #

dataTypeOf :: (f :*: g) p -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ((f :*: g) p)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ((f :*: g) p)) #

gmapT :: (forall b. Data b => b -> b) -> (f :*: g) p -> (f :*: g) p #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> (f :*: g) p -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> (f :*: g) p -> r #

gmapQ :: (forall d. Data d => d -> u) -> (f :*: g) p -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> (f :*: g) p -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> (f :*: g) p -> m ((f :*: g) p) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> (f :*: g) p -> m ((f :*: g) p) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> (f :*: g) p -> m ((f :*: g) p) #

(Ord (f p), Ord (g p)) => Ord ((f :*: g) p)

Since: base-4.7.0.0

Instance details

Defined in GHC.Generics

Methods

compare :: (f :*: g) p -> (f :*: g) p -> Ordering #

(<) :: (f :*: g) p -> (f :*: g) p -> Bool #

(<=) :: (f :*: g) p -> (f :*: g) p -> Bool #

(>) :: (f :*: g) p -> (f :*: g) p -> Bool #

(>=) :: (f :*: g) p -> (f :*: g) p -> Bool #

max :: (f :*: g) p -> (f :*: g) p -> (f :*: g) p #

min :: (f :*: g) p -> (f :*: g) p -> (f :*: g) p #

(Read (f p), Read (g p)) => Read ((f :*: g) p)

Since: base-4.7.0.0

Instance details

Defined in GHC.Generics

Methods

readsPrec :: Int -> ReadS ((f :*: g) p) #

readList :: ReadS [(f :*: g) p] #

readPrec :: ReadPrec ((f :*: g) p) #

readListPrec :: ReadPrec [(f :*: g) p] #

(Show (f p), Show (g p)) => Show ((f :*: g) p)

Since: base-4.7.0.0

Instance details

Defined in GHC.Generics

Methods

showsPrec :: Int -> (f :*: g) p -> ShowS #

show :: (f :*: g) p -> String #

showList :: [(f :*: g) p] -> ShowS #

Generic ((f :*: g) p)

Since: base-4.7.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep ((f :*: g) p) :: Type -> Type #

Methods

from :: (f :*: g) p -> Rep ((f :*: g) p) x #

to :: Rep ((f :*: g) p) x -> (f :*: g) p #

(Semigroup (f p), Semigroup (g p)) => Semigroup ((f :*: g) p)

Since: base-4.12.0.0

Instance details

Defined in GHC.Generics

Methods

(<>) :: (f :*: g) p -> (f :*: g) p -> (f :*: g) p #

sconcat :: NonEmpty ((f :*: g) p) -> (f :*: g) p #

stimes :: Integral b => b -> (f :*: g) p -> (f :*: g) p #

(Monoid (f p), Monoid (g p)) => Monoid ((f :*: g) p)

Since: base-4.12.0.0

Instance details

Defined in GHC.Generics

Methods

mempty :: (f :*: g) p #

mappend :: (f :*: g) p -> (f :*: g) p -> (f :*: g) p #

mconcat :: [(f :*: g) p] -> (f :*: g) p #

Field1 ((f :*: g) p) ((f' :*: g) p) (f p) (f' p) 
Instance details

Defined in Control.Lens.Tuple

Methods

_1 :: Lens ((f :*: g) p) ((f' :*: g) p) (f p) (f' p) #

Field2 ((f :*: g) p) ((f :*: g') p) (g p) (g' p) 
Instance details

Defined in Control.Lens.Tuple

Methods

_2 :: Lens ((f :*: g) p) ((f :*: g') p) (g p) (g' p) #

type Rep1 (f :*: g :: k -> Type) 
Instance details

Defined in GHC.Generics

type NFields (f :*: g :: k -> Type) 
Instance details

Defined in Generic.Data.Internal.Functions

type NFields (f :*: g :: k -> Type) = NFields f + NFields g
type Rep (f :*: g) 
Instance details

Defined in Data.Functor.Rep

type Rep (f :*: g) = Either (Rep f) (Rep g)
type GRep' (f :*: g) 
Instance details

Defined in Data.Functor.Rep

type GRep' (f :*: g) = Either (GRep' f) (GRep' g)
type GSize (a :*: b) 
Instance details

Defined in Control.Lens.Tuple

type GSize (a :*: b) = Add (GSize a) (GSize b)
type HWitnessType (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Nodes

type Constraints' (f :*: g) c 
Instance details

Defined in Generics.Constraints

type Constraints' (f :*: g) c = (Constraints' f c, Constraints' g c)
type HNodesConstraint (a :*: b) x Source # 
Instance details

Defined in Hyper.Class.Nodes

type Rep ((f :*: g) p) 
Instance details

Defined in GHC.Generics

newtype Const a (b :: k) #

The Const functor.

Constructors

Const 

Fields

Instances

Instances details
() :=> (Functor (Const a :: Type -> Type)) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Functor (Const a) #

Generic1 (Const a :: k -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Associated Types

type Rep1 (Const a) :: k -> Type #

Methods

from1 :: forall (a0 :: k0). Const a a0 -> Rep1 (Const a) a0 #

to1 :: forall (a0 :: k0). Rep1 (Const a) a0 -> Const a a0 #

FunctorWithIndex Void (Const e :: Type -> Type) 
Instance details

Defined in WithIndex

Methods

imap :: (Void -> a -> b) -> Const e a -> Const e b #

FoldableWithIndex Void (Const e :: Type -> Type) 
Instance details

Defined in WithIndex

Methods

ifoldMap :: Monoid m => (Void -> a -> m) -> Const e a -> m #

ifoldMap' :: Monoid m => (Void -> a -> m) -> Const e a -> m #

ifoldr :: (Void -> a -> b -> b) -> b -> Const e a -> b #

ifoldl :: (Void -> b -> a -> b) -> b -> Const e a -> b #

ifoldr' :: (Void -> a -> b -> b) -> b -> Const e a -> b #

ifoldl' :: (Void -> b -> a -> b) -> b -> Const e a -> b #

TraversableWithIndex Void (Const e :: Type -> Type) 
Instance details

Defined in WithIndex

Methods

itraverse :: Applicative f => (Void -> a -> f b) -> Const e a -> f (Const e b) #

c (Const a :: AHyperType -> Type) => Recursively c (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Recursive

Methods

recursively :: proxy (c (Const a)) -> Dict (c (Const a), HNodesConstraint (Const a) (Recursively c)) Source #

Unbox a => Vector Vector (Const a b) 
Instance details

Defined in Data.Vector.Unboxed.Base

Methods

basicUnsafeFreeze :: PrimMonad m => Mutable Vector (PrimState m) (Const a b) -> m (Vector (Const a b)) #

basicUnsafeThaw :: PrimMonad m => Vector (Const a b) -> m (Mutable Vector (PrimState m) (Const a b)) #

basicLength :: Vector (Const a b) -> Int #

basicUnsafeSlice :: Int -> Int -> Vector (Const a b) -> Vector (Const a b) #

basicUnsafeIndexM :: Monad m => Vector (Const a b) -> Int -> m (Const a b) #

basicUnsafeCopy :: PrimMonad m => Mutable Vector (PrimState m) (Const a b) -> Vector (Const a b) -> m () #

elemseq :: Vector (Const a b) -> Const a b -> b0 -> b0 #

Unbox a => MVector MVector (Const a b) 
Instance details

Defined in Data.Vector.Unboxed.Base

Methods

basicLength :: MVector s (Const a b) -> Int #

basicUnsafeSlice :: Int -> Int -> MVector s (Const a b) -> MVector s (Const a b) #

basicOverlaps :: MVector s (Const a b) -> MVector s (Const a b) -> Bool #

basicUnsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) (Const a b)) #

basicInitialize :: PrimMonad m => MVector (PrimState m) (Const a b) -> m () #

basicUnsafeReplicate :: PrimMonad m => Int -> Const a b -> m (MVector (PrimState m) (Const a b)) #

basicUnsafeRead :: PrimMonad m => MVector (PrimState m) (Const a b) -> Int -> m (Const a b) #

basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) (Const a b) -> Int -> Const a b -> m () #

basicClear :: PrimMonad m => MVector (PrimState m) (Const a b) -> m () #

basicSet :: PrimMonad m => MVector (PrimState m) (Const a b) -> Const a b -> m () #

basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) (Const a b) -> MVector (PrimState m) (Const a b) -> m () #

basicUnsafeMove :: PrimMonad m => MVector (PrimState m) (Const a b) -> MVector (PrimState m) (Const a b) -> m () #

basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) (Const a b) -> Int -> m (MVector (PrimState m) (Const a b)) #

Bifunctor (Const :: Type -> Type -> Type)

Since: base-4.8.0.0

Instance details

Defined in Data.Bifunctor

Methods

bimap :: (a -> b) -> (c -> d) -> Const a c -> Const b d #

first :: (a -> b) -> Const a c -> Const b c #

second :: (b -> c) -> Const a b -> Const a c #

Bitraversable (Const :: Type -> Type -> Type)

Since: base-4.10.0.0

Instance details

Defined in Data.Bitraversable

Methods

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> Const a b -> f (Const c d) #

Bifoldable (Const :: Type -> Type -> Type)

Since: base-4.10.0.0

Instance details

Defined in Data.Bifoldable

Methods

bifold :: Monoid m => Const m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> Const a b -> m #

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> Const a b -> c #

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> Const a b -> c #

Eq2 (Const :: Type -> Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Methods

liftEq2 :: (a -> b -> Bool) -> (c -> d -> Bool) -> Const a c -> Const b d -> Bool #

Ord2 (Const :: Type -> Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Methods

liftCompare2 :: (a -> b -> Ordering) -> (c -> d -> Ordering) -> Const a c -> Const b d -> Ordering #

Read2 (Const :: Type -> Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Methods

liftReadsPrec2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> Int -> ReadS (Const a b) #

liftReadList2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> ReadS [Const a b] #

liftReadPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec (Const a b) #

liftReadListPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec [Const a b] #

Show2 (Const :: Type -> Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Methods

liftShowsPrec2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> Int -> Const a b -> ShowS #

liftShowList2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> [Const a b] -> ShowS #

Biapplicative (Const :: Type -> Type -> Type) 
Instance details

Defined in Data.Biapplicative

Methods

bipure :: a -> b -> Const a b #

(<<*>>) :: Const (a -> b) (c -> d) -> Const a c -> Const b d #

biliftA2 :: (a -> b -> c) -> (d -> e -> f) -> Const a d -> Const b e -> Const c f #

(*>>) :: Const a b -> Const c d -> Const c d #

(<<*) :: Const a b -> Const c d -> Const a b #

NFData2 (Const :: Type -> Type -> Type)

Since: deepseq-1.4.3.0

Instance details

Defined in Control.DeepSeq

Methods

liftRnf2 :: (a -> ()) -> (b -> ()) -> Const a b -> () #

Hashable2 (Const :: Type -> Type -> Type) 
Instance details

Defined in Data.Hashable.Class

Methods

liftHashWithSalt2 :: (Int -> a -> Int) -> (Int -> b -> Int) -> Int -> Const a b -> Int #

Biapply (Const :: Type -> Type -> Type) 
Instance details

Defined in Data.Functor.Bind.Class

Methods

(<<.>>) :: Const (a -> b) (c -> d) -> Const a c -> Const b d #

(.>>) :: Const a b -> Const c d -> Const c d #

(<<.) :: Const a b -> Const c d -> Const a b #

(Bounded a) :=> (Bounded (Const a b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Bounded a :- Bounded (Const a b) #

(Enum a) :=> (Enum (Const a b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Enum a :- Enum (Const a b) #

(Eq a) :=> (Eq (Const a b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Eq a :- Eq (Const a b) #

(Floating a) :=> (Floating (Const a b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Floating a :- Floating (Const a b) #

(Fractional a) :=> (Fractional (Const a b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Fractional a :- Fractional (Const a b) #

(Integral a) :=> (Integral (Const a b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Integral a :- Integral (Const a b) #

(Num a) :=> (Num (Const a b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Num a :- Num (Const a b) #

(Ord a) :=> (Ord (Const a b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Ord a :- Ord (Const a b) #

(Read a) :=> (Read (Const a b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Read a :- Read (Const a b) #

(Real a) :=> (Real (Const a b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Real a :- Real (Const a b) #

(RealFloat a) :=> (RealFloat (Const a b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: RealFloat a :- RealFloat (Const a b) #

(RealFrac a) :=> (RealFrac (Const a b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: RealFrac a :- RealFrac (Const a b) #

(Show a) :=> (Show (Const a b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Show a :- Show (Const a b) #

(Semigroup a) :=> (Semigroup (Const a b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Semigroup a :- Semigroup (Const a b) #

(Monoid a) :=> (Monoid (Const a b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Monoid a :- Monoid (Const a b) #

(Monoid a) :=> (Applicative (Const a :: Type -> Type)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Monoid a :- Applicative (Const a) #

(Bits a) :=> (Bits (Const a b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Bits a :- Bits (Const a b) #

Semigroupoid (Const :: Type -> Type -> Type) 
Instance details

Defined in Data.Semigroupoid

Methods

o :: forall (j :: k) (k1 :: k) (i :: k). Const j k1 -> Const i j -> Const i k1 #

Functor (Const m :: Type -> Type)

Since: base-2.1

Instance details

Defined in Data.Functor.Const

Methods

fmap :: (a -> b) -> Const m a -> Const m b #

(<$) :: a -> Const m b -> Const m a #

Monoid m => Applicative (Const m :: Type -> Type)

Since: base-2.0.1

Instance details

Defined in Data.Functor.Const

Methods

pure :: a -> Const m a #

(<*>) :: Const m (a -> b) -> Const m a -> Const m b #

liftA2 :: (a -> b -> c) -> Const m a -> Const m b -> Const m c #

(*>) :: Const m a -> Const m b -> Const m b #

(<*) :: Const m a -> Const m b -> Const m a #

Foldable (Const m :: Type -> Type)

Since: base-4.7.0.0

Instance details

Defined in Data.Functor.Const

Methods

fold :: Monoid m0 => Const m m0 -> m0 #

foldMap :: Monoid m0 => (a -> m0) -> Const m a -> m0 #

foldMap' :: Monoid m0 => (a -> m0) -> Const m a -> m0 #

foldr :: (a -> b -> b) -> b -> Const m a -> b #

foldr' :: (a -> b -> b) -> b -> Const m a -> b #

foldl :: (b -> a -> b) -> b -> Const m a -> b #

foldl' :: (b -> a -> b) -> b -> Const m a -> b #

foldr1 :: (a -> a -> a) -> Const m a -> a #

foldl1 :: (a -> a -> a) -> Const m a -> a #

toList :: Const m a -> [a] #

null :: Const m a -> Bool #

length :: Const m a -> Int #

elem :: Eq a => a -> Const m a -> Bool #

maximum :: Ord a => Const m a -> a #

minimum :: Ord a => Const m a -> a #

sum :: Num a => Const m a -> a #

product :: Num a => Const m a -> a #

Traversable (Const m :: Type -> Type)

Since: base-4.7.0.0

Instance details

Defined in Data.Traversable

Methods

traverse :: Applicative f => (a -> f b) -> Const m a -> f (Const m b) #

sequenceA :: Applicative f => Const m (f a) -> f (Const m a) #

mapM :: Monad m0 => (a -> m0 b) -> Const m a -> m0 (Const m b) #

sequence :: Monad m0 => Const m (m0 a) -> m0 (Const m a) #

Contravariant (Const a :: Type -> Type) 
Instance details

Defined in Data.Functor.Contravariant

Methods

contramap :: (a0 -> b) -> Const a b -> Const a a0 #

(>$) :: b -> Const a b -> Const a a0 #

Eq a => Eq1 (Const a :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Methods

liftEq :: (a0 -> b -> Bool) -> Const a a0 -> Const a b -> Bool #

Ord a => Ord1 (Const a :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Methods

liftCompare :: (a0 -> b -> Ordering) -> Const a a0 -> Const a b -> Ordering #

Read a => Read1 (Const a :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Methods

liftReadsPrec :: (Int -> ReadS a0) -> ReadS [a0] -> Int -> ReadS (Const a a0) #

liftReadList :: (Int -> ReadS a0) -> ReadS [a0] -> ReadS [Const a a0] #

liftReadPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec (Const a a0) #

liftReadListPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec [Const a a0] #

Show a => Show1 (Const a :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Methods

liftShowsPrec :: (Int -> a0 -> ShowS) -> ([a0] -> ShowS) -> Int -> Const a a0 -> ShowS #

liftShowList :: (Int -> a0 -> ShowS) -> ([a0] -> ShowS) -> [Const a a0] -> ShowS #

NFData a => NFData1 (Const a :: Type -> Type)

Since: deepseq-1.4.3.0

Instance details

Defined in Control.DeepSeq

Methods

liftRnf :: (a0 -> ()) -> Const a a0 -> () #

Hashable a => Hashable1 (Const a :: Type -> Type) 
Instance details

Defined in Data.Hashable.Class

Methods

liftHashWithSalt :: (Int -> a0 -> Int) -> Int -> Const a a0 -> Int #

Semigroup m => Apply (Const m :: Type -> Type)

A Const m is not Applicative unless its m is a Monoid, but it is an instance of Apply

Instance details

Defined in Data.Functor.Bind.Class

Methods

(<.>) :: Const m (a -> b) -> Const m a -> Const m b #

(.>) :: Const m a -> Const m b -> Const m b #

(<.) :: Const m a -> Const m b -> Const m a #

liftF2 :: (a -> b -> c) -> Const m a -> Const m b -> Const m c #

HNodes (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Nodes

Associated Types

type HNodesConstraint (Const a) c Source #

type HWitnessType (Const a) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (Const a) c => HWitness (Const a) n -> Proxy c -> (c n => r) -> r Source #

Monoid a => HPointed (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Pointed

Methods

hpure :: (forall (n :: HyperType). HWitness (Const a) n -> p # n) -> Const a # p Source #

HFunctor (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Functor

Methods

hmap :: (forall (n :: HyperType). HWitness (Const a) n -> (p # n) -> q # n) -> (Const a # p) -> Const a # q Source #

HFoldable (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Foldable

Methods

hfoldMap :: Monoid a0 => (forall (n :: HyperType). HWitness (Const a) n -> (p # n) -> a0) -> (Const a # p) -> a0 Source #

HTraversable (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Traversable

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (Const a # ContainedH f p) -> f (Const a # p) Source #

Semigroup a => HApply (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Apply

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (Const a # p) -> (Const a # q) -> Const a # (p :*: q) Source #

Eq a => ZipMatch (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.ZipMatch

Methods

zipMatch :: forall (p :: HyperType) (q :: HyperType). (Const a # p) -> (Const a # q) -> Maybe (Const a # (p :*: q)) Source #

RTraversable (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Recursive

RNodes (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Recursive

Bounded a => Bounded (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

minBound :: Const a b #

maxBound :: Const a b #

Enum a => Enum (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

succ :: Const a b -> Const a b #

pred :: Const a b -> Const a b #

toEnum :: Int -> Const a b #

fromEnum :: Const a b -> Int #

enumFrom :: Const a b -> [Const a b] #

enumFromThen :: Const a b -> Const a b -> [Const a b] #

enumFromTo :: Const a b -> Const a b -> [Const a b] #

enumFromThenTo :: Const a b -> Const a b -> Const a b -> [Const a b] #

Eq a => Eq (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

(==) :: Const a b -> Const a b -> Bool #

(/=) :: Const a b -> Const a b -> Bool #

Floating a => Floating (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

pi :: Const a b #

exp :: Const a b -> Const a b #

log :: Const a b -> Const a b #

sqrt :: Const a b -> Const a b #

(**) :: Const a b -> Const a b -> Const a b #

logBase :: Const a b -> Const a b -> Const a b #

sin :: Const a b -> Const a b #

cos :: Const a b -> Const a b #

tan :: Const a b -> Const a b #

asin :: Const a b -> Const a b #

acos :: Const a b -> Const a b #

atan :: Const a b -> Const a b #

sinh :: Const a b -> Const a b #

cosh :: Const a b -> Const a b #

tanh :: Const a b -> Const a b #

asinh :: Const a b -> Const a b #

acosh :: Const a b -> Const a b #

atanh :: Const a b -> Const a b #

log1p :: Const a b -> Const a b #

expm1 :: Const a b -> Const a b #

log1pexp :: Const a b -> Const a b #

log1mexp :: Const a b -> Const a b #

Fractional a => Fractional (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

(/) :: Const a b -> Const a b -> Const a b #

recip :: Const a b -> Const a b #

fromRational :: Rational -> Const a b #

Integral a => Integral (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

quot :: Const a b -> Const a b -> Const a b #

rem :: Const a b -> Const a b -> Const a b #

div :: Const a b -> Const a b -> Const a b #

mod :: Const a b -> Const a b -> Const a b #

quotRem :: Const a b -> Const a b -> (Const a b, Const a b) #

divMod :: Const a b -> Const a b -> (Const a b, Const a b) #

toInteger :: Const a b -> Integer #

(Typeable k, Data a, Typeable b) => Data (Const a b)

Since: base-4.10.0.0

Instance details

Defined in Data.Data

Methods

gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> Const a b -> c (Const a b) #

gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Const a b) #

toConstr :: Const a b -> Constr #

dataTypeOf :: Const a b -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Const a b)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Const a b)) #

gmapT :: (forall b0. Data b0 => b0 -> b0) -> Const a b -> Const a b #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Const a b -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Const a b -> r #

gmapQ :: (forall d. Data d => d -> u) -> Const a b -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Const a b -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Const a b -> m (Const a b) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Const a b -> m (Const a b) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Const a b -> m (Const a b) #

Num a => Num (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

(+) :: Const a b -> Const a b -> Const a b #

(-) :: Const a b -> Const a b -> Const a b #

(*) :: Const a b -> Const a b -> Const a b #

negate :: Const a b -> Const a b #

abs :: Const a b -> Const a b #

signum :: Const a b -> Const a b #

fromInteger :: Integer -> Const a b #

Ord a => Ord (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

compare :: Const a b -> Const a b -> Ordering #

(<) :: Const a b -> Const a b -> Bool #

(<=) :: Const a b -> Const a b -> Bool #

(>) :: Const a b -> Const a b -> Bool #

(>=) :: Const a b -> Const a b -> Bool #

max :: Const a b -> Const a b -> Const a b #

min :: Const a b -> Const a b -> Const a b #

Read a => Read (Const a b)

This instance would be equivalent to the derived instances of the Const newtype if the getConst field were removed

Since: base-4.8.0.0

Instance details

Defined in Data.Functor.Const

Real a => Real (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

toRational :: Const a b -> Rational #

RealFloat a => RealFloat (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

floatRadix :: Const a b -> Integer #

floatDigits :: Const a b -> Int #

floatRange :: Const a b -> (Int, Int) #

decodeFloat :: Const a b -> (Integer, Int) #

encodeFloat :: Integer -> Int -> Const a b #

exponent :: Const a b -> Int #

significand :: Const a b -> Const a b #

scaleFloat :: Int -> Const a b -> Const a b #

isNaN :: Const a b -> Bool #

isInfinite :: Const a b -> Bool #

isDenormalized :: Const a b -> Bool #

isNegativeZero :: Const a b -> Bool #

isIEEE :: Const a b -> Bool #

atan2 :: Const a b -> Const a b -> Const a b #

RealFrac a => RealFrac (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

properFraction :: Integral b0 => Const a b -> (b0, Const a b) #

truncate :: Integral b0 => Const a b -> b0 #

round :: Integral b0 => Const a b -> b0 #

ceiling :: Integral b0 => Const a b -> b0 #

floor :: Integral b0 => Const a b -> b0 #

Show a => Show (Const a b)

This instance would be equivalent to the derived instances of the Const newtype if the getConst field were removed

Since: base-4.8.0.0

Instance details

Defined in Data.Functor.Const

Methods

showsPrec :: Int -> Const a b -> ShowS #

show :: Const a b -> String #

showList :: [Const a b] -> ShowS #

Ix a => Ix (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

range :: (Const a b, Const a b) -> [Const a b] #

index :: (Const a b, Const a b) -> Const a b -> Int #

unsafeIndex :: (Const a b, Const a b) -> Const a b -> Int #

inRange :: (Const a b, Const a b) -> Const a b -> Bool #

rangeSize :: (Const a b, Const a b) -> Int #

unsafeRangeSize :: (Const a b, Const a b) -> Int #

Generic (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Associated Types

type Rep (Const a b) :: Type -> Type #

Methods

from :: Const a b -> Rep (Const a b) x #

to :: Rep (Const a b) x -> Const a b #

Semigroup a => Semigroup (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

(<>) :: Const a b -> Const a b -> Const a b #

sconcat :: NonEmpty (Const a b) -> Const a b #

stimes :: Integral b0 => b0 -> Const a b -> Const a b #

Monoid a => Monoid (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

mempty :: Const a b #

mappend :: Const a b -> Const a b -> Const a b #

mconcat :: [Const a b] -> Const a b #

Storable a => Storable (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

sizeOf :: Const a b -> Int #

alignment :: Const a b -> Int #

peekElemOff :: Ptr (Const a b) -> Int -> IO (Const a b) #

pokeElemOff :: Ptr (Const a b) -> Int -> Const a b -> IO () #

peekByteOff :: Ptr b0 -> Int -> IO (Const a b) #

pokeByteOff :: Ptr b0 -> Int -> Const a b -> IO () #

peek :: Ptr (Const a b) -> IO (Const a b) #

poke :: Ptr (Const a b) -> Const a b -> IO () #

Bits a => Bits (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

(.&.) :: Const a b -> Const a b -> Const a b #

(.|.) :: Const a b -> Const a b -> Const a b #

xor :: Const a b -> Const a b -> Const a b #

complement :: Const a b -> Const a b #

shift :: Const a b -> Int -> Const a b #

rotate :: Const a b -> Int -> Const a b #

zeroBits :: Const a b #

bit :: Int -> Const a b #

setBit :: Const a b -> Int -> Const a b #

clearBit :: Const a b -> Int -> Const a b #

complementBit :: Const a b -> Int -> Const a b #

testBit :: Const a b -> Int -> Bool #

bitSizeMaybe :: Const a b -> Maybe Int #

bitSize :: Const a b -> Int #

isSigned :: Const a b -> Bool #

shiftL :: Const a b -> Int -> Const a b #

unsafeShiftL :: Const a b -> Int -> Const a b #

shiftR :: Const a b -> Int -> Const a b #

unsafeShiftR :: Const a b -> Int -> Const a b #

rotateL :: Const a b -> Int -> Const a b #

rotateR :: Const a b -> Int -> Const a b #

popCount :: Const a b -> Int #

FiniteBits a => FiniteBits (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

NFData a => NFData (Const a b)

Since: deepseq-1.4.0.0

Instance details

Defined in Control.DeepSeq

Methods

rnf :: Const a b -> () #

Hashable a => Hashable (Const a b) 
Instance details

Defined in Data.Hashable.Class

Methods

hashWithSalt :: Int -> Const a b -> Int #

hash :: Const a b -> Int #

Prim a => Prim (Const a b)

Since: primitive-0.6.5.0

Instance details

Defined in Data.Primitive.Types

Methods

sizeOf# :: Const a b -> Int# #

alignment# :: Const a b -> Int# #

indexByteArray# :: ByteArray# -> Int# -> Const a b #

readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Const a b #) #

writeByteArray# :: MutableByteArray# s -> Int# -> Const a b -> State# s -> State# s #

setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Const a b -> State# s -> State# s #

indexOffAddr# :: Addr# -> Int# -> Const a b #

readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Const a b #) #

writeOffAddr# :: Addr# -> Int# -> Const a b -> State# s -> State# s #

setOffAddr# :: Addr# -> Int# -> Int# -> Const a b -> State# s -> State# s #

Unbox a => Unbox (Const a b) 
Instance details

Defined in Data.Vector.Unboxed.Base

Wrapped (Const a x) 
Instance details

Defined in Control.Lens.Wrapped

Associated Types

type Unwrapped (Const a x) #

Methods

_Wrapped' :: Iso' (Const a x) (Unwrapped (Const a x)) #

t ~ Const a' x' => Rewrapped (Const a x) t 
Instance details

Defined in Control.Lens.Wrapped

type Rep1 (Const a :: k -> Type) 
Instance details

Defined in Data.Functor.Const

type Rep1 (Const a :: k -> Type) = D1 ('MetaData "Const" "Data.Functor.Const" "base" 'True) (C1 ('MetaCons "Const" 'PrefixI 'True) (S1 ('MetaSel ('Just "getConst") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))
newtype MVector s (Const a b) 
Instance details

Defined in Data.Vector.Unboxed.Base

newtype MVector s (Const a b) = MV_Const (MVector s a)
type HWitnessType (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Nodes

type HNodesConstraint (Const a :: AHyperType -> Type) _1 Source # 
Instance details

Defined in Hyper.Class.Nodes

type HNodesConstraint (Const a :: AHyperType -> Type) _1 = ()
type Rep (Const a b) 
Instance details

Defined in Data.Functor.Const

type Rep (Const a b) = D1 ('MetaData "Const" "Data.Functor.Const" "base" 'True) (C1 ('MetaCons "Const" 'PrefixI 'True) (S1 ('MetaSel ('Just "getConst") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))
newtype Vector (Const a b) 
Instance details

Defined in Data.Vector.Unboxed.Base

newtype Vector (Const a b) = V_Const (Vector a)
type Unwrapped (Const a x) 
Instance details

Defined in Control.Lens.Wrapped

type Unwrapped (Const a x) = a

data Proxy (t :: k) #

Proxy is a type that holds no data, but has a phantom parameter of arbitrary type (or even kind). Its use is to provide type information, even though there is no value available of that type (or it may be too costly to create one).

Historically, Proxy :: Proxy a is a safer alternative to the undefined :: a idiom.

>>> Proxy :: Proxy (Void, Int -> Int)
Proxy

Proxy can even hold types of higher kinds,

>>> Proxy :: Proxy Either
Proxy
>>> Proxy :: Proxy Functor
Proxy
>>> Proxy :: Proxy complicatedStructure
Proxy

Constructors

Proxy 

Instances

Instances details
Generic1 (Proxy :: k -> Type)

Since: base-4.6.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep1 Proxy :: k -> Type #

Methods

from1 :: forall (a :: k0). Proxy a -> Rep1 Proxy a #

to1 :: forall (a :: k0). Rep1 Proxy a -> Proxy a #

FunctorWithIndex Void (Proxy :: Type -> Type) 
Instance details

Defined in WithIndex

Methods

imap :: (Void -> a -> b) -> Proxy a -> Proxy b #

FoldableWithIndex Void (Proxy :: Type -> Type) 
Instance details

Defined in WithIndex

Methods

ifoldMap :: Monoid m => (Void -> a -> m) -> Proxy a -> m #

ifoldMap' :: Monoid m => (Void -> a -> m) -> Proxy a -> m #

ifoldr :: (Void -> a -> b -> b) -> b -> Proxy a -> b #

ifoldl :: (Void -> b -> a -> b) -> b -> Proxy a -> b #

ifoldr' :: (Void -> a -> b -> b) -> b -> Proxy a -> b #

ifoldl' :: (Void -> b -> a -> b) -> b -> Proxy a -> b #

TraversableWithIndex Void (Proxy :: Type -> Type) 
Instance details

Defined in WithIndex

Methods

itraverse :: Applicative f => (Void -> a -> f b) -> Proxy a -> f (Proxy b) #

Monad (Proxy :: Type -> Type)

Since: base-4.7.0.0

Instance details

Defined in Data.Proxy

Methods

(>>=) :: Proxy a -> (a -> Proxy b) -> Proxy b #

(>>) :: Proxy a -> Proxy b -> Proxy b #

return :: a -> Proxy a #

Functor (Proxy :: Type -> Type)

Since: base-4.7.0.0

Instance details

Defined in Data.Proxy

Methods

fmap :: (a -> b) -> Proxy a -> Proxy b #

(<$) :: a -> Proxy b -> Proxy a #

Applicative (Proxy :: Type -> Type)

Since: base-4.7.0.0

Instance details

Defined in Data.Proxy

Methods

pure :: a -> Proxy a #

(<*>) :: Proxy (a -> b) -> Proxy a -> Proxy b #

liftA2 :: (a -> b -> c) -> Proxy a -> Proxy b -> Proxy c #

(*>) :: Proxy a -> Proxy b -> Proxy b #

(<*) :: Proxy a -> Proxy b -> Proxy a #

Foldable (Proxy :: Type -> Type)

Since: base-4.7.0.0

Instance details

Defined in Data.Foldable

Methods

fold :: Monoid m => Proxy m -> m #

foldMap :: Monoid m => (a -> m) -> Proxy a -> m #

foldMap' :: Monoid m => (a -> m) -> Proxy a -> m #

foldr :: (a -> b -> b) -> b -> Proxy a -> b #

foldr' :: (a -> b -> b) -> b -> Proxy a -> b #

foldl :: (b -> a -> b) -> b -> Proxy a -> b #

foldl' :: (b -> a -> b) -> b -> Proxy a -> b #

foldr1 :: (a -> a -> a) -> Proxy a -> a #

foldl1 :: (a -> a -> a) -> Proxy a -> a #

toList :: Proxy a -> [a] #

null :: Proxy a -> Bool #

length :: Proxy a -> Int #

elem :: Eq a => a -> Proxy a -> Bool #

maximum :: Ord a => Proxy a -> a #

minimum :: Ord a => Proxy a -> a #

sum :: Num a => Proxy a -> a #

product :: Num a => Proxy a -> a #

Traversable (Proxy :: Type -> Type)

Since: base-4.7.0.0

Instance details

Defined in Data.Traversable

Methods

traverse :: Applicative f => (a -> f b) -> Proxy a -> f (Proxy b) #

sequenceA :: Applicative f => Proxy (f a) -> f (Proxy a) #

mapM :: Monad m => (a -> m b) -> Proxy a -> m (Proxy b) #

sequence :: Monad m => Proxy (m a) -> m (Proxy a) #

Distributive (Proxy :: Type -> Type) 
Instance details

Defined in Data.Distributive

Methods

distribute :: Functor f => f (Proxy a) -> Proxy (f a) #

collect :: Functor f => (a -> Proxy b) -> f a -> Proxy (f b) #

distributeM :: Monad m => m (Proxy a) -> Proxy (m a) #

collectM :: Monad m => (a -> Proxy b) -> m a -> Proxy (m b) #

Contravariant (Proxy :: Type -> Type) 
Instance details

Defined in Data.Functor.Contravariant

Methods

contramap :: (a -> b) -> Proxy b -> Proxy a #

(>$) :: b -> Proxy b -> Proxy a #

Representable (Proxy :: Type -> Type) 
Instance details

Defined in Data.Functor.Rep

Associated Types

type Rep Proxy #

Methods

tabulate :: (Rep Proxy -> a) -> Proxy a #

index :: Proxy a -> Rep Proxy -> a #

Eq1 (Proxy :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Methods

liftEq :: (a -> b -> Bool) -> Proxy a -> Proxy b -> Bool #

Ord1 (Proxy :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Methods

liftCompare :: (a -> b -> Ordering) -> Proxy a -> Proxy b -> Ordering #

Read1 (Proxy :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Methods

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Proxy a) #

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Proxy a] #

liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Proxy a) #

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Proxy a] #

Show1 (Proxy :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Proxy a -> ShowS #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Proxy a] -> ShowS #

Alternative (Proxy :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Proxy

Methods

empty :: Proxy a #

(<|>) :: Proxy a -> Proxy a -> Proxy a #

some :: Proxy a -> Proxy [a] #

many :: Proxy a -> Proxy [a] #

MonadPlus (Proxy :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Proxy

Methods

mzero :: Proxy a #

mplus :: Proxy a -> Proxy a -> Proxy a #

NFData1 (Proxy :: Type -> Type)

Since: deepseq-1.4.3.0

Instance details

Defined in Control.DeepSeq

Methods

liftRnf :: (a -> ()) -> Proxy a -> () #

Hashable1 (Proxy :: Type -> Type) 
Instance details

Defined in Data.Hashable.Class

Methods

liftHashWithSalt :: (Int -> a -> Int) -> Int -> Proxy a -> Int #

Apply (Proxy :: Type -> Type) 
Instance details

Defined in Data.Functor.Bind.Class

Methods

(<.>) :: Proxy (a -> b) -> Proxy a -> Proxy b #

(.>) :: Proxy a -> Proxy b -> Proxy b #

(<.) :: Proxy a -> Proxy b -> Proxy a #

liftF2 :: (a -> b -> c) -> Proxy a -> Proxy b -> Proxy c #

Bind (Proxy :: Type -> Type) 
Instance details

Defined in Data.Functor.Bind.Class

Methods

(>>-) :: Proxy a -> (a -> Proxy b) -> Proxy b #

join :: Proxy (Proxy a) -> Proxy a #

Bounded (Proxy t)

Since: base-4.7.0.0

Instance details

Defined in Data.Proxy

Methods

minBound :: Proxy t #

maxBound :: Proxy t #

Enum (Proxy s)

Since: base-4.7.0.0

Instance details

Defined in Data.Proxy

Methods

succ :: Proxy s -> Proxy s #

pred :: Proxy s -> Proxy s #

toEnum :: Int -> Proxy s #

fromEnum :: Proxy s -> Int #

enumFrom :: Proxy s -> [Proxy s] #

enumFromThen :: Proxy s -> Proxy s -> [Proxy s] #

enumFromTo :: Proxy s -> Proxy s -> [Proxy s] #

enumFromThenTo :: Proxy s -> Proxy s -> Proxy s -> [Proxy s] #

Eq (Proxy s)

Since: base-4.7.0.0

Instance details

Defined in Data.Proxy

Methods

(==) :: Proxy s -> Proxy s -> Bool #

(/=) :: Proxy s -> Proxy s -> Bool #

Data t => Data (Proxy t)

Since: base-4.7.0.0

Instance details

Defined in Data.Data

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Proxy t -> c (Proxy t) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Proxy t) #

toConstr :: Proxy t -> Constr #

dataTypeOf :: Proxy t -> DataType #

dataCast1 :: Typeable t0 => (forall d. Data d => c (t0 d)) -> Maybe (c (Proxy t)) #

dataCast2 :: Typeable t0 => (forall d e. (Data d, Data e) => c (t0 d e)) -> Maybe (c (Proxy t)) #

gmapT :: (forall b. Data b => b -> b) -> Proxy t -> Proxy t #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Proxy t -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Proxy t -> r #

gmapQ :: (forall d. Data d => d -> u) -> Proxy t -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Proxy t -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Proxy t -> m (Proxy t) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Proxy t -> m (Proxy t) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Proxy t -> m (Proxy t) #

Ord (Proxy s)

Since: base-4.7.0.0

Instance details

Defined in Data.Proxy

Methods

compare :: Proxy s -> Proxy s -> Ordering #

(<) :: Proxy s -> Proxy s -> Bool #

(<=) :: Proxy s -> Proxy s -> Bool #

(>) :: Proxy s -> Proxy s -> Bool #

(>=) :: Proxy s -> Proxy s -> Bool #

max :: Proxy s -> Proxy s -> Proxy s #

min :: Proxy s -> Proxy s -> Proxy s #

Read (Proxy t)

Since: base-4.7.0.0

Instance details

Defined in Data.Proxy

Show (Proxy s)

Since: base-4.7.0.0

Instance details

Defined in Data.Proxy

Methods

showsPrec :: Int -> Proxy s -> ShowS #

show :: Proxy s -> String #

showList :: [Proxy s] -> ShowS #

Ix (Proxy s)

Since: base-4.7.0.0

Instance details

Defined in Data.Proxy

Methods

range :: (Proxy s, Proxy s) -> [Proxy s] #

index :: (Proxy s, Proxy s) -> Proxy s -> Int #

unsafeIndex :: (Proxy s, Proxy s) -> Proxy s -> Int #

inRange :: (Proxy s, Proxy s) -> Proxy s -> Bool #

rangeSize :: (Proxy s, Proxy s) -> Int #

unsafeRangeSize :: (Proxy s, Proxy s) -> Int #

Generic (Proxy t)

Since: base-4.6.0.0

Instance details

Defined in GHC.Generics

Associated Types

type Rep (Proxy t) :: Type -> Type #

Methods

from :: Proxy t -> Rep (Proxy t) x #

to :: Rep (Proxy t) x -> Proxy t #

Semigroup (Proxy s)

Since: base-4.9.0.0

Instance details

Defined in Data.Proxy

Methods

(<>) :: Proxy s -> Proxy s -> Proxy s #

sconcat :: NonEmpty (Proxy s) -> Proxy s #

stimes :: Integral b => b -> Proxy s -> Proxy s #

Monoid (Proxy s)

Since: base-4.7.0.0

Instance details

Defined in Data.Proxy

Methods

mempty :: Proxy s #

mappend :: Proxy s -> Proxy s -> Proxy s #

mconcat :: [Proxy s] -> Proxy s #

NFData (Proxy a)

Since: deepseq-1.4.0.0

Instance details

Defined in Control.DeepSeq

Methods

rnf :: Proxy a -> () #

Hashable (Proxy a) 
Instance details

Defined in Data.Hashable.Class

Methods

hashWithSalt :: Int -> Proxy a -> Int #

hash :: Proxy a -> Int #

type Rep1 (Proxy :: k -> Type) 
Instance details

Defined in GHC.Generics

type Rep1 (Proxy :: k -> Type) = D1 ('MetaData "Proxy" "Data.Proxy" "base" 'False) (C1 ('MetaCons "Proxy" 'PrefixI 'False) (U1 :: k -> Type))
type Rep (Proxy :: Type -> Type) 
Instance details

Defined in Data.Functor.Rep

type Rep (Proxy :: Type -> Type) = Void
type Rep (Proxy t) 
Instance details

Defined in GHC.Generics

type Rep (Proxy t) = D1 ('MetaData "Proxy" "Data.Proxy" "base" 'False) (C1 ('MetaCons "Proxy" 'PrefixI 'False) (U1 :: Type -> Type))

withDict :: HasDict c e => e -> (c => r) -> r #

From a Dict, takes a value in an environment where the instance witnessed by the Dict is in scope, and evaluates it.

Essentially a deconstruction of a Dict into its continuation-style form.

Can also be used to deconstruct an entailment, a :- b, using a context a.

withDict :: Dict c -> (c => r) -> r
withDict :: a => (a :- c) -> (c => r) -> r

data Dict a where #

Values of type Dict p capture a dictionary for a constraint of type p.

e.g.

Dict :: Dict (Eq Int)

captures a dictionary that proves we have an:

instance Eq Int

Pattern matching on the Dict constructor will bring this instance into scope.

Constructors

Dict :: forall a. a => Dict a 

Instances

Instances details
HasDict a (Dict a) 
Instance details

Defined in Data.Constraint

Methods

evidence :: Dict a -> Dict a #

a :=> (Read (Dict a)) 
Instance details

Defined in Data.Constraint

Methods

ins :: a :- Read (Dict a) #

a :=> (Monoid (Dict a)) 
Instance details

Defined in Data.Constraint

Methods

ins :: a :- Monoid (Dict a) #

a :=> (Enum (Dict a)) 
Instance details

Defined in Data.Constraint

Methods

ins :: a :- Enum (Dict a) #

a :=> (Bounded (Dict a)) 
Instance details

Defined in Data.Constraint

Methods

ins :: a :- Bounded (Dict a) #

() :=> (Eq (Dict a)) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Eq (Dict a) #

() :=> (Ord (Dict a)) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Ord (Dict a) #

() :=> (Show (Dict a)) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Show (Dict a) #

() :=> (Semigroup (Dict a)) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Semigroup (Dict a) #

a => Bounded (Dict a) 
Instance details

Defined in Data.Constraint

Methods

minBound :: Dict a #

maxBound :: Dict a #

a => Enum (Dict a) 
Instance details

Defined in Data.Constraint

Methods

succ :: Dict a -> Dict a #

pred :: Dict a -> Dict a #

toEnum :: Int -> Dict a #

fromEnum :: Dict a -> Int #

enumFrom :: Dict a -> [Dict a] #

enumFromThen :: Dict a -> Dict a -> [Dict a] #

enumFromTo :: Dict a -> Dict a -> [Dict a] #

enumFromThenTo :: Dict a -> Dict a -> Dict a -> [Dict a] #

Eq (Dict a) 
Instance details

Defined in Data.Constraint

Methods

(==) :: Dict a -> Dict a -> Bool #

(/=) :: Dict a -> Dict a -> Bool #

(Typeable p, p) => Data (Dict p) 
Instance details

Defined in Data.Constraint

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Dict p -> c (Dict p) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Dict p) #

toConstr :: Dict p -> Constr #

dataTypeOf :: Dict p -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Dict p)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Dict p)) #

gmapT :: (forall b. Data b => b -> b) -> Dict p -> Dict p #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Dict p -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Dict p -> r #

gmapQ :: (forall d. Data d => d -> u) -> Dict p -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Dict p -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Dict p -> m (Dict p) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Dict p -> m (Dict p) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Dict p -> m (Dict p) #

Ord (Dict a) 
Instance details

Defined in Data.Constraint

Methods

compare :: Dict a -> Dict a -> Ordering #

(<) :: Dict a -> Dict a -> Bool #

(<=) :: Dict a -> Dict a -> Bool #

(>) :: Dict a -> Dict a -> Bool #

(>=) :: Dict a -> Dict a -> Bool #

max :: Dict a -> Dict a -> Dict a #

min :: Dict a -> Dict a -> Dict a #

a => Read (Dict a) 
Instance details

Defined in Data.Constraint

Show (Dict a) 
Instance details

Defined in Data.Constraint

Methods

showsPrec :: Int -> Dict a -> ShowS #

show :: Dict a -> String #

showList :: [Dict a] -> ShowS #

Semigroup (Dict a) 
Instance details

Defined in Data.Constraint

Methods

(<>) :: Dict a -> Dict a -> Dict a #

sconcat :: NonEmpty (Dict a) -> Dict a #

stimes :: Integral b => b -> Dict a -> Dict a #

a => Monoid (Dict a) 
Instance details

Defined in Data.Constraint

Methods

mempty :: Dict a #

mappend :: Dict a -> Dict a -> Dict a #

mconcat :: [Dict a] -> Dict a #

NFData (Dict c) 
Instance details

Defined in Data.Constraint

Methods

rnf :: Dict c -> () #

type (:#) h p = GetHyperType h # p Source #

A type synonym to express child nodes in nested-HKDs

type (#) h p = h ('AHyperType p) :: Type Source #

A type synonym to express nested-HKD structures

type family GetHyperType h where ... Source #

A type-level getter for the type constructor encoded in AHyperType.

Notes:

  • If DataKinds supported lifting field getters this would had been replaced with the type's getter.
  • GetHyperType is injective, but due to no support for constrained type families, that's not expressible at the moment.
  • Because GetHyperType can't declared as bijective, uses of it may restrict inference. In those cases wrapping terms with the asHyper helper assists Haskell's type inference as if Haskell knew that GetHyperType was bijective.

Equations

GetHyperType ('AHyperType t) = t 

newtype AHyperType Source #

Constructors

AHyperType HyperType 

Instances

Instances details
c (Const a :: AHyperType -> Type) => Recursively c (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Recursive

Methods

recursively :: proxy (c (Const a)) -> Dict (c (Const a), HNodesConstraint (Const a) (Recursively c)) Source #

Infer m h => Infer m (Rec1 h) Source # 
Instance details

Defined in Hyper.Class.Infer

Methods

inferBody :: forall (h0 :: AHyperType -> Type). (Rec1 h # InferChild m h0) -> m (Rec1 h # h0, InferOf (Rec1 h) # UVarOf m) Source #

inferContext :: proxy0 m -> proxy1 (Rec1 h) -> Dict (HNodesConstraint (Rec1 h) (Infer m), HNodesConstraint (InferOf (Rec1 h)) (UnifyGen m)) Source #

(InferOf a ~ InferOf b, Infer m a, Infer m b) => Infer m (a :+: b) Source # 
Instance details

Defined in Hyper.Class.Infer

Methods

inferBody :: forall (h :: AHyperType -> Type). ((a :+: b) # InferChild m h) -> m ((a :+: b) # h, InferOf (a :+: b) # UVarOf m) Source #

inferContext :: proxy0 m -> proxy1 (a :+: b) -> Dict (HNodesConstraint (a :+: b) (Infer m), HNodesConstraint (InferOf (a :+: b)) (UnifyGen m)) Source #

Infer m h => Infer m (M1 i c h) Source # 
Instance details

Defined in Hyper.Class.Infer

Methods

inferBody :: forall (h0 :: AHyperType -> Type). (M1 i c h # InferChild m h0) -> m (M1 i c h # h0, InferOf (M1 i c h) # UVarOf m) Source #

inferContext :: proxy0 m -> proxy1 (M1 i c h) -> Dict (HNodesConstraint (M1 i c h) (Infer m), HNodesConstraint (InferOf (M1 i c h)) (UnifyGen m)) Source #

HNodes h => HNodes (Rec1 h) Source # 
Instance details

Defined in Hyper.Class.Nodes

Associated Types

type HNodesConstraint (Rec1 h) c Source #

type HWitnessType (Rec1 h) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (Rec1 h) c => HWitness (Rec1 h) n -> Proxy c -> (c n => r) -> r Source #

HNodes (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Nodes

Associated Types

type HNodesConstraint (Const a) c Source #

type HWitnessType (Const a) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (Const a) c => HWitness (Const a) n -> Proxy c -> (c n => r) -> r Source #

Monoid a => HPointed (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Pointed

Methods

hpure :: (forall (n :: HyperType). HWitness (Const a) n -> p # n) -> Const a # p Source #

HFunctor h => HFunctor (Rec1 h) Source # 
Instance details

Defined in Hyper.Class.Functor

Methods

hmap :: (forall (n :: HyperType). HWitness (Rec1 h) n -> (p # n) -> q # n) -> (Rec1 h # p) -> Rec1 h # q Source #

HFunctor (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Functor

Methods

hmap :: (forall (n :: HyperType). HWitness (Const a) n -> (p # n) -> q # n) -> (Const a # p) -> Const a # q Source #

HFoldable h => HFoldable (Rec1 h) Source # 
Instance details

Defined in Hyper.Class.Foldable

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (Rec1 h) n -> (p # n) -> a) -> (Rec1 h # p) -> a Source #

HFoldable (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Foldable

Methods

hfoldMap :: Monoid a0 => (forall (n :: HyperType). HWitness (Const a) n -> (p # n) -> a0) -> (Const a # p) -> a0 Source #

HTraversable h => HTraversable (Rec1 h) Source # 
Instance details

Defined in Hyper.Class.Traversable

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (Rec1 h # ContainedH f p) -> f (Rec1 h # p) Source #

HTraversable (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Traversable

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (Const a # ContainedH f p) -> f (Const a # p) Source #

Semigroup a => HApply (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Apply

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (Const a # p) -> (Const a # q) -> Const a # (p :*: q) Source #

ZipMatch h => ZipMatch (Rec1 h) Source # 
Instance details

Defined in Hyper.Class.ZipMatch

Methods

zipMatch :: forall (p :: HyperType) (q :: HyperType). (Rec1 h # p) -> (Rec1 h # q) -> Maybe (Rec1 h # (p :*: q)) Source #

Eq a => ZipMatch (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.ZipMatch

Methods

zipMatch :: forall (p :: HyperType) (q :: HyperType). (Const a # p) -> (Const a # q) -> Maybe (Const a # (p :*: q)) Source #

RTraversable (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Recursive

RNodes (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Recursive

(HNodes a, HNodes b) => HNodes (a :+: b) Source # 
Instance details

Defined in Hyper.Class.Nodes

Associated Types

type HNodesConstraint (a :+: b) c Source #

type HWitnessType (a :+: b) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (a :+: b) c => HWitness (a :+: b) n -> Proxy c -> (c n => r) -> r Source #

(HNodes a, HNodes b) => HNodes (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Nodes

Associated Types

type HNodesConstraint (a :*: b) c Source #

type HWitnessType (a :*: b) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (a :*: b) c => HWitness (a :*: b) n -> Proxy c -> (c n => r) -> r Source #

(HPointed a, HPointed b) => HPointed (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Pointed

Methods

hpure :: (forall (n :: HyperType). HWitness (a :*: b) n -> p # n) -> (a :*: b) # p Source #

(HFunctor a, HFunctor b) => HFunctor (a :+: b) Source # 
Instance details

Defined in Hyper.Class.Functor

Methods

hmap :: (forall (n :: HyperType). HWitness (a :+: b) n -> (p # n) -> q # n) -> ((a :+: b) # p) -> (a :+: b) # q Source #

(HFunctor a, HFunctor b) => HFunctor (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Functor

Methods

hmap :: (forall (n :: HyperType). HWitness (a :*: b) n -> (p # n) -> q # n) -> ((a :*: b) # p) -> (a :*: b) # q Source #

(HFoldable a, HFoldable b) => HFoldable (a :+: b) Source # 
Instance details

Defined in Hyper.Class.Foldable

Methods

hfoldMap :: Monoid a0 => (forall (n :: HyperType). HWitness (a :+: b) n -> (p # n) -> a0) -> ((a :+: b) # p) -> a0 Source #

(HFoldable a, HFoldable b) => HFoldable (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Foldable

Methods

hfoldMap :: Monoid a0 => (forall (n :: HyperType). HWitness (a :*: b) n -> (p # n) -> a0) -> ((a :*: b) # p) -> a0 Source #

(HTraversable a, HTraversable b) => HTraversable (a :+: b) Source # 
Instance details

Defined in Hyper.Class.Traversable

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => ((a :+: b) # ContainedH f p) -> f ((a :+: b) # p) Source #

(HTraversable a, HTraversable b) => HTraversable (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Traversable

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => ((a :*: b) # ContainedH f p) -> f ((a :*: b) # p) Source #

(HApply a, HApply b) => HApply (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Apply

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). ((a :*: b) # p) -> ((a :*: b) # q) -> (a :*: b) # (p :*: q) Source #

(ZipMatch a, ZipMatch b) => ZipMatch (a :+: b) Source # 
Instance details

Defined in Hyper.Class.ZipMatch

Methods

zipMatch :: forall (p :: HyperType) (q :: HyperType). ((a :+: b) # p) -> ((a :+: b) # q) -> Maybe ((a :+: b) # (p :*: q)) Source #

(ZipMatch a, ZipMatch b) => ZipMatch (a :*: b) Source # 
Instance details

Defined in Hyper.Class.ZipMatch

Methods

zipMatch :: forall (p :: HyperType) (q :: HyperType). ((a :*: b) # p) -> ((a :*: b) # q) -> Maybe ((a :*: b) # (p :*: q)) Source #

HNodes h => HNodes (M1 i m h) Source # 
Instance details

Defined in Hyper.Class.Nodes

Associated Types

type HNodesConstraint (M1 i m h) c Source #

type HWitnessType (M1 i m h) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (M1 i m h) c => HWitness (M1 i m h) n -> Proxy c -> (c n => r) -> r Source #

HFunctor h => HFunctor (M1 i m h) Source # 
Instance details

Defined in Hyper.Class.Functor

Methods

hmap :: (forall (n :: HyperType). HWitness (M1 i m h) n -> (p # n) -> q # n) -> (M1 i m h # p) -> M1 i m h # q Source #

HFoldable h => HFoldable (M1 i m h) Source # 
Instance details

Defined in Hyper.Class.Foldable

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (M1 i m h) n -> (p # n) -> a) -> (M1 i m h # p) -> a Source #

HTraversable h => HTraversable (M1 i m h) Source # 
Instance details

Defined in Hyper.Class.Traversable

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (M1 i m h # ContainedH f p) -> f (M1 i m h # p) Source #

ZipMatch h => ZipMatch (M1 i m h) Source # 
Instance details

Defined in Hyper.Class.ZipMatch

Methods

zipMatch :: forall (p :: HyperType) (q :: HyperType). (M1 i m h # p) -> (M1 i m h # q) -> Maybe (M1 i m h # (p :*: q)) Source #

type HWitnessType (Rec1 h) Source # 
Instance details

Defined in Hyper.Class.Nodes

type HWitnessType (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Nodes

type InferOf (Rec1 h) Source # 
Instance details

Defined in Hyper.Class.Infer

type InferOf (Rec1 h) = InferOf h
type HNodesConstraint (Rec1 h) c Source # 
Instance details

Defined in Hyper.Class.Nodes

type HNodesConstraint (Const a :: AHyperType -> Type) _1 Source # 
Instance details

Defined in Hyper.Class.Nodes

type HNodesConstraint (Const a :: AHyperType -> Type) _1 = ()
type HWitnessType (a :+: b) Source # 
Instance details

Defined in Hyper.Class.Nodes

type HWitnessType (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Nodes

type InferOf (a :+: _1) Source # 
Instance details

Defined in Hyper.Class.Infer

type InferOf (a :+: _1) = InferOf a
type HNodesConstraint (a :+: b) x Source # 
Instance details

Defined in Hyper.Class.Nodes

type HNodesConstraint (a :*: b) x Source # 
Instance details

Defined in Hyper.Class.Nodes

type HWitnessType (M1 i m h) Source # 
Instance details

Defined in Hyper.Class.Nodes

type HWitnessType (M1 i m h) = HWitnessType h
type InferOf (M1 _1 _2 h) Source # 
Instance details

Defined in Hyper.Class.Infer

type InferOf (M1 _1 _2 h) = InferOf h
type HNodesConstraint (M1 i m h) c Source # 
Instance details

Defined in Hyper.Class.Nodes

type HNodesConstraint (M1 i m h) c = HNodesConstraint h c

type HyperType = AHyperType -> Type Source #

A hypertype is a type parameterized by a hypertype

asHyper :: (h # p) -> h # p Source #

An id variant which tells the type checker that its argument is a hypertype.

See the notes for GetHyperType which expand on why this might be used.

Note that asHyper may often be used during development to assist the inference of incomplete code, but removed once the code is complete.

newtype HFunc (i :: HyperType) o h Source #

Constructors

HFunc (i h -> o h) 

_HFunc :: Iso (HFunc i0 o0 # h0) (HFunc i1 o1 # h1) ((i0 # h0) -> o0 # h0) ((i1 # h1) -> o1 # h1) Source #

class HNodes (h :: HyperType) where Source #

HNodes allows talking about the child nodes of a HyperType.

Various classes like HFunctor build upon HNodes to provide methods such as hmap which provide a rank-n function for processing child nodes which requires a constraint on the nodes.

Minimal complete definition

Nothing

Associated Types

type HNodesConstraint h (c :: HyperType -> Constraint) :: Constraint Source #

Lift a constraint to apply to the child nodes

type HWitnessType h :: HyperType -> Type Source #

HWitness h n is a witness that n is a node of h.

A value quantified with forall n. HWitness h n -> ... n, is equivalent for a "for-some" where the possible values for n are the nodes of h.

Methods

hLiftConstraint :: HNodesConstraint h c => HWitness h n -> Proxy c -> (c n => r) -> r Source #

Lift a rank-n value with a constraint which the child nodes satisfy to a function from a node witness.

default hLiftConstraint :: (HWitnessType h ~ HWitnessType (Rep1 h), HNodesConstraint h c ~ HNodesConstraint (Rep1 h) c, HNodes (Rep1 h), HNodesConstraint h c) => HWitness h n -> Proxy c -> (c n => r) -> r Source #

Instances

Instances details
HNodes Pure Source # 
Instance details

Defined in Hyper.Type.Pure

Associated Types

type HNodesConstraint Pure c Source #

type HWitnessType Pure :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint Pure c => HWitness Pure n -> Proxy c -> (c n => r) -> r Source #

HNodes Prune Source # 
Instance details

Defined in Hyper.Type.Prune

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint Prune c => HWitness Prune n -> Proxy c -> (c n => r) -> r Source #

HNodes a => HNodes (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Associated Types

type HNodesConstraint (Ann a) c Source #

type HWitnessType (Ann a) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (Ann a) c => HWitness (Ann a) n -> Proxy c -> (c n => r) -> r Source #

HNodes (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Associated Types

type HNodesConstraint (ANode c) c Source #

type HWitnessType (ANode c) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c0 (n :: HyperType) r. HNodesConstraint (ANode c) c0 => HWitness (ANode c) n -> Proxy c0 -> (c0 n => r) -> r Source #

HNodes (F f) Source # 
Instance details

Defined in Hyper.Type.Functor

Associated Types

type HNodesConstraint (F f) c Source #

type HWitnessType (F f) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (F f) c => HWitness (F f) n -> Proxy c -> (c n => r) -> r Source #

HNodes (FuncType typ) Source # 
Instance details

Defined in Hyper.Type.AST.FuncType

Associated Types

type HNodesConstraint (FuncType typ) c Source #

type HWitnessType (FuncType typ) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (FuncType typ) c => HWitness (FuncType typ) n -> Proxy c -> (c n => r) -> r Source #

HNodes t => HNodes (UnifyError t) Source # 
Instance details

Defined in Hyper.Unify.Error

Associated Types

type HNodesConstraint (UnifyError t) c Source #

type HWitnessType (UnifyError t) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (UnifyError t) c => HWitness (UnifyError t) n -> Proxy c -> (c n => r) -> r Source #

HNodes v => HNodes (GTerm v) Source # 
Instance details

Defined in Hyper.Unify.Generalize

Associated Types

type HNodesConstraint (GTerm v) c Source #

type HWitnessType (GTerm v) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (GTerm v) c => HWitness (GTerm v) n -> Proxy c -> (c n => r) -> r Source #

(RNodes t, HNodes (NomVarTypes t)) => HNodes (LoadedNominalDecl t) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (LoadedNominalDecl t) c => HWitness (LoadedNominalDecl t) n -> Proxy c -> (c n => r) -> r Source #

HNodes (NominalDecl typ) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Associated Types

type HNodesConstraint (NominalDecl typ) c Source #

type HWitnessType (NominalDecl typ) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (NominalDecl typ) c => HWitness (NominalDecl typ) n -> Proxy c -> (c n => r) -> r Source #

HNodes (App expr) Source # 
Instance details

Defined in Hyper.Type.AST.App

Associated Types

type HNodesConstraint (App expr) c Source #

type HWitnessType (App expr) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (App expr) c => HWitness (App expr) n -> Proxy c -> (c n => r) -> r Source #

HNodes h => HNodes (Rec1 h) Source # 
Instance details

Defined in Hyper.Class.Nodes

Associated Types

type HNodesConstraint (Rec1 h) c Source #

type HWitnessType (Rec1 h) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (Rec1 h) c => HWitness (Rec1 h) n -> Proxy c -> (c n => r) -> r Source #

HNodes (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Nodes

Associated Types

type HNodesConstraint (Const a) c Source #

type HWitnessType (Const a) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (Const a) c => HWitness (Const a) n -> Proxy c -> (c n => r) -> r Source #

RNodes h => HNodes (HFlip Ann h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Associated Types

type HNodesConstraint (HFlip Ann h) c Source #

type HWitnessType (HFlip Ann h) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (HFlip Ann h) c => HWitness (HFlip Ann h) n -> Proxy c -> (c n => r) -> r Source #

RNodes a => HNodes (HFlip GTerm a) Source # 
Instance details

Defined in Hyper.Unify.Generalize

Associated Types

type HNodesConstraint (HFlip GTerm a) c Source #

type HWitnessType (HFlip GTerm a) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (HFlip GTerm a) c => HWitness (HFlip GTerm a) n -> Proxy c -> (c n => r) -> r Source #

HNodes (InferOf e) => HNodes (HFlip InferResult e) Source # 
Instance details

Defined in Hyper.Infer.Result

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (HFlip InferResult e) c => HWitness (HFlip InferResult e) n -> Proxy c -> (c n => r) -> r Source #

(HNodes a, HNodes b) => HNodes (HCompose a b) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Associated Types

type HNodesConstraint (HCompose a b) c Source #

type HWitnessType (HCompose a b) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (HCompose a b) c => HWitness (HCompose a b) n -> Proxy c -> (c n => r) -> r Source #

HNodes (TermMap h expr) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Associated Types

type HNodesConstraint (TermMap h expr) c Source #

type HWitnessType (TermMap h expr) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (TermMap h expr) c => HWitness (TermMap h expr) n -> Proxy c -> (c n => r) -> r Source #

HNodes (Var v expr) Source # 
Instance details

Defined in Hyper.Type.AST.Var

Associated Types

type HNodesConstraint (Var v expr) c Source #

type HWitnessType (Var v expr) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (Var v expr) c => HWitness (Var v expr) n -> Proxy c -> (c n => r) -> r Source #

HNodes (Scheme varTypes typ) Source # 
Instance details

Defined in Hyper.Type.AST.Scheme

Associated Types

type HNodesConstraint (Scheme varTypes typ) c Source #

type HWitnessType (Scheme varTypes typ) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (Scheme varTypes typ) c => HWitness (Scheme varTypes typ) n -> Proxy c -> (c n => r) -> r Source #

HNodes (TypeSig vars term) Source # 
Instance details

Defined in Hyper.Type.AST.TypeSig

Associated Types

type HNodesConstraint (TypeSig vars term) c Source #

type HWitnessType (TypeSig vars term) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (TypeSig vars term) c => HWitness (TypeSig vars term) n -> Proxy c -> (c n => r) -> r Source #

HNodes (FromNom nomId term) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Associated Types

type HNodesConstraint (FromNom nomId term) c Source #

type HWitnessType (FromNom nomId term) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (FromNom nomId term) c => HWitness (FromNom nomId term) n -> Proxy c -> (c n => r) -> r Source #

HNodes (ToNom nomId term) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Associated Types

type HNodesConstraint (ToNom nomId term) c Source #

type HWitnessType (ToNom nomId term) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (ToNom nomId term) c => HWitness (ToNom nomId term) n -> Proxy c -> (c n => r) -> r Source #

HNodes v => HNodes (NominalInst n v) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Associated Types

type HNodesConstraint (NominalInst n v) c Source #

type HWitnessType (NominalInst n v) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n0 :: HyperType) r. HNodesConstraint (NominalInst n v) c => HWitness (NominalInst n v) n0 -> Proxy c -> (c n0 => r) -> r Source #

HNodes (Let v expr) Source # 
Instance details

Defined in Hyper.Type.AST.Let

Associated Types

type HNodesConstraint (Let v expr) c Source #

type HWitnessType (Let v expr) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (Let v expr) c => HWitness (Let v expr) n -> Proxy c -> (c n => r) -> r Source #

HNodes (Lam v expr) Source # 
Instance details

Defined in Hyper.Type.AST.Lam

Associated Types

type HNodesConstraint (Lam v expr) c Source #

type HWitnessType (Lam v expr) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (Lam v expr) c => HWitness (Lam v expr) n -> Proxy c -> (c n => r) -> r Source #

(HNodes a, HNodes b) => HNodes (a :+: b) Source # 
Instance details

Defined in Hyper.Class.Nodes

Associated Types

type HNodesConstraint (a :+: b) c Source #

type HWitnessType (a :+: b) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (a :+: b) c => HWitness (a :+: b) n -> Proxy c -> (c n => r) -> r Source #

(HNodes a, HNodes b) => HNodes (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Nodes

Associated Types

type HNodesConstraint (a :*: b) c Source #

type HWitnessType (a :*: b) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (a :*: b) c => HWitness (a :*: b) n -> Proxy c -> (c n => r) -> r Source #

HNodes (FlatRowExtends key val rest) Source # 
Instance details

Defined in Hyper.Type.AST.Row

Associated Types

type HNodesConstraint (FlatRowExtends key val rest) c Source #

type HWitnessType (FlatRowExtends key val rest) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (FlatRowExtends key val rest) c => HWitness (FlatRowExtends key val rest) n -> Proxy c -> (c n => r) -> r Source #

HNodes (RowExtend key val rest) Source # 
Instance details

Defined in Hyper.Type.AST.Row

Associated Types

type HNodesConstraint (RowExtend key val rest) c Source #

type HWitnessType (RowExtend key val rest) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (RowExtend key val rest) c => HWitness (RowExtend key val rest) n -> Proxy c -> (c n => r) -> r Source #

HNodes (TypedLam var typ expr) Source # 
Instance details

Defined in Hyper.Type.AST.TypedLam

Associated Types

type HNodesConstraint (TypedLam var typ expr) c Source #

type HWitnessType (TypedLam var typ expr) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (TypedLam var typ expr) c => HWitness (TypedLam var typ expr) n -> Proxy c -> (c n => r) -> r Source #

HNodes h => HNodes (M1 i m h) Source # 
Instance details

Defined in Hyper.Class.Nodes

Associated Types

type HNodesConstraint (M1 i m h) c Source #

type HWitnessType (M1 i m h) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (M1 i m h) c => HWitness (M1 i m h) n -> Proxy c -> (c n => r) -> r Source #

newtype HWitness h n Source #

Constructors

HWitness (HWitnessType h n) 

_HWitness :: forall h n h n. Iso (HWitness h n) (HWitness h n) (HWitnessType h n) (HWitnessType h n) Source #

(#>) :: (HNodes h, HNodesConstraint h c) => Proxy c -> (c n => r) -> HWitness h n -> r infixr 0 Source #

Proxy c #> r replaces the witness parameter of r@ with a constraint on the witnessed node

(#*#) :: (HNodes h, HNodesConstraint h c) => Proxy c -> (c n => HWitness h n -> r) -> HWitness h n -> r infixr 0 Source #

A variant of #> which does not consume the witness parameter.

Proxy c0 Proxy c1 #> r brings into context both the c0 n and c1 n constraints.

class HNodes h => HPointed h where Source #

A variant of Pointed for HyperTypes

Methods

hpure :: (forall n. HWitness h n -> p # n) -> h # p Source #

Construct a value from a generator of h's nodes (a generator which can generate a tree of any type given a witness that it is a node of h)

Instances

Instances details
HPointed Pure Source # 
Instance details

Defined in Hyper.Type.Pure

Methods

hpure :: (forall (n :: HyperType). HWitness Pure n -> p # n) -> Pure # p Source #

HPointed Prune Source # 
Instance details

Defined in Hyper.Type.Prune

Methods

hpure :: (forall (n :: HyperType). HWitness Prune n -> p # n) -> Prune # p Source #

HPointed a => HPointed (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hpure :: (forall (n :: HyperType). HWitness (Ann a) n -> p # n) -> Ann a # p Source #

HPointed (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

hpure :: (forall (n :: HyperType). HWitness (ANode c) n -> p # n) -> ANode c # p Source #

Applicative f => HPointed (F f) Source # 
Instance details

Defined in Hyper.Type.Functor

Methods

hpure :: (forall (n :: HyperType). HWitness (F f) n -> p # n) -> F f # p Source #

HPointed (FuncType typ) Source # 
Instance details

Defined in Hyper.Type.AST.FuncType

Methods

hpure :: (forall (n :: HyperType). HWitness (FuncType typ) n -> p # n) -> FuncType typ # p Source #

HPointed (App expr) Source # 
Instance details

Defined in Hyper.Type.AST.App

Methods

hpure :: (forall (n :: HyperType). HWitness (App expr) n -> p # n) -> App expr # p Source #

Monoid a => HPointed (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Pointed

Methods

hpure :: (forall (n :: HyperType). HWitness (Const a) n -> p # n) -> Const a # p Source #

(HNodes a, HPointed a, HPointed b) => HPointed (HCompose a b) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Methods

hpure :: (forall (n :: HyperType). HWitness (HCompose a b) n -> p # n) -> HCompose a b # p Source #

Applicative (Map h) => HPointed (TermMap h expr) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Methods

hpure :: (forall (n :: HyperType). HWitness (TermMap h expr) n -> p # n) -> TermMap h expr # p Source #

Monoid v => HPointed (Var v expr) Source # 
Instance details

Defined in Hyper.Type.AST.Var

Methods

hpure :: (forall (n :: HyperType). HWitness (Var v expr) n -> p # n) -> Var v expr # p Source #

Monoid (varTypes # QVars) => HPointed (Scheme varTypes typ) Source # 
Instance details

Defined in Hyper.Type.AST.Scheme

Methods

hpure :: (forall (n :: HyperType). HWitness (Scheme varTypes typ) n -> p # n) -> Scheme varTypes typ # p Source #

HPointed (TypeSig vars term) Source # 
Instance details

Defined in Hyper.Type.AST.TypeSig

Methods

hpure :: (forall (n :: HyperType). HWitness (TypeSig vars term) n -> p # n) -> TypeSig vars term # p Source #

Monoid nomId => HPointed (FromNom nomId term) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hpure :: (forall (n :: HyperType). HWitness (FromNom nomId term) n -> p # n) -> FromNom nomId term # p Source #

Monoid nomId => HPointed (ToNom nomId term) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hpure :: (forall (n :: HyperType). HWitness (ToNom nomId term) n -> p # n) -> ToNom nomId term # p Source #

Monoid v => HPointed (Let v expr) Source # 
Instance details

Defined in Hyper.Type.AST.Let

Methods

hpure :: (forall (n :: HyperType). HWitness (Let v expr) n -> p # n) -> Let v expr # p Source #

Monoid v => HPointed (Lam v expr) Source # 
Instance details

Defined in Hyper.Type.AST.Lam

Methods

hpure :: (forall (n :: HyperType). HWitness (Lam v expr) n -> p # n) -> Lam v expr # p Source #

(HPointed a, HPointed b) => HPointed (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Pointed

Methods

hpure :: (forall (n :: HyperType). HWitness (a :*: b) n -> p # n) -> (a :*: b) # p Source #

Applicative (Map key) => HPointed (FlatRowExtends key val rest) Source # 
Instance details

Defined in Hyper.Type.AST.Row

Methods

hpure :: (forall (n :: HyperType). HWitness (FlatRowExtends key val rest) n -> p # n) -> FlatRowExtends key val rest # p Source #

Monoid key => HPointed (RowExtend key val rest) Source # 
Instance details

Defined in Hyper.Type.AST.Row

Methods

hpure :: (forall (n :: HyperType). HWitness (RowExtend key val rest) n -> p # n) -> RowExtend key val rest # p Source #

Monoid var => HPointed (TypedLam var typ expr) Source # 
Instance details

Defined in Hyper.Type.AST.TypedLam

Methods

hpure :: (forall (n :: HyperType). HWitness (TypedLam var typ expr) n -> p # n) -> TypedLam var typ expr # p Source #

class HNodes h => HFunctor h where Source #

A variant of Functor for HyperTypes

Minimal complete definition

Nothing

Methods

hmap :: (forall n. HWitness h n -> (p # n) -> q # n) -> (h # p) -> h # q Source #

HFunctor variant of fmap

Applied a given mapping for h's nodes (trees along witnesses that they are nodes of h) to result with a new tree, potentially with a different nest type.

default hmap :: (Generic1 h, HFunctor (Rep1 h), HWitnessType h ~ HWitnessType (Rep1 h)) => (forall n. HWitness h n -> (p # n) -> q # n) -> (h # p) -> h # q Source #

Instances

Instances details
HFunctor Pure Source # 
Instance details

Defined in Hyper.Type.Pure

Methods

hmap :: (forall (n :: HyperType). HWitness Pure n -> (p # n) -> q # n) -> (Pure # p) -> Pure # q Source #

HFunctor Prune Source # 
Instance details

Defined in Hyper.Type.Prune

Methods

hmap :: (forall (n :: HyperType). HWitness Prune n -> (p # n) -> q # n) -> (Prune # p) -> Prune # q Source #

HFunctor a => HFunctor (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hmap :: (forall (n :: HyperType). HWitness (Ann a) n -> (p # n) -> q # n) -> (Ann a # p) -> Ann a # q Source #

HFunctor (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

hmap :: (forall (n :: HyperType). HWitness (ANode c) n -> (p # n) -> q # n) -> (ANode c # p) -> ANode c # q Source #

Functor f => HFunctor (F f) Source # 
Instance details

Defined in Hyper.Type.Functor

Methods

hmap :: (forall (n :: HyperType). HWitness (F f) n -> (p # n) -> q # n) -> (F f # p) -> F f # q Source #

HFunctor (FuncType typ) Source # 
Instance details

Defined in Hyper.Type.AST.FuncType

Methods

hmap :: (forall (n :: HyperType). HWitness (FuncType typ) n -> (p # n) -> q # n) -> (FuncType typ # p) -> FuncType typ # q Source #

HFunctor t => HFunctor (UnifyError t) Source # 
Instance details

Defined in Hyper.Unify.Error

Methods

hmap :: (forall (n :: HyperType). HWitness (UnifyError t) n -> (p # n) -> q # n) -> (UnifyError t # p) -> UnifyError t # q Source #

HFunctor v => HFunctor (GTerm v) Source # 
Instance details

Defined in Hyper.Unify.Generalize

Methods

hmap :: (forall (n :: HyperType). HWitness (GTerm v) n -> (p # n) -> q # n) -> (GTerm v # p) -> GTerm v # q Source #

(Recursively HFunctor typ, HFunctor (NomVarTypes typ)) => HFunctor (LoadedNominalDecl typ) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hmap :: (forall (n :: HyperType). HWitness (LoadedNominalDecl typ) n -> (p # n) -> q # n) -> (LoadedNominalDecl typ # p) -> LoadedNominalDecl typ # q Source #

HFunctor (NominalDecl typ) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hmap :: (forall (n :: HyperType). HWitness (NominalDecl typ) n -> (p # n) -> q # n) -> (NominalDecl typ # p) -> NominalDecl typ # q Source #

HFunctor (App expr) Source # 
Instance details

Defined in Hyper.Type.AST.App

Methods

hmap :: (forall (n :: HyperType). HWitness (App expr) n -> (p # n) -> q # n) -> (App expr # p) -> App expr # q Source #

HFunctor h => HFunctor (Rec1 h) Source # 
Instance details

Defined in Hyper.Class.Functor

Methods

hmap :: (forall (n :: HyperType). HWitness (Rec1 h) n -> (p # n) -> q # n) -> (Rec1 h # p) -> Rec1 h # q Source #

HFunctor (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Functor

Methods

hmap :: (forall (n :: HyperType). HWitness (Const a) n -> (p # n) -> q # n) -> (Const a # p) -> Const a # q Source #

Recursively HFunctor h => HFunctor (HFlip Ann h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hmap :: (forall (n :: HyperType). HWitness (HFlip Ann h) n -> (p # n) -> q # n) -> (HFlip Ann h # p) -> HFlip Ann h # q Source #

Recursively HFunctor ast => HFunctor (HFlip GTerm ast) Source # 
Instance details

Defined in Hyper.Unify.Generalize

Methods

hmap :: (forall (n :: HyperType). HWitness (HFlip GTerm ast) n -> (p # n) -> q # n) -> (HFlip GTerm ast # p) -> HFlip GTerm ast # q Source #

HFunctor (InferOf e) => HFunctor (HFlip InferResult e) Source # 
Instance details

Defined in Hyper.Infer.Result

Methods

hmap :: (forall (n :: HyperType). HWitness (HFlip InferResult e) n -> (p # n) -> q # n) -> (HFlip InferResult e # p) -> HFlip InferResult e # q Source #

(HFunctor a, HFunctor b) => HFunctor (HCompose a b) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Methods

hmap :: (forall (n :: HyperType). HWitness (HCompose a b) n -> (p # n) -> q # n) -> (HCompose a b # p) -> HCompose a b # q Source #

HFunctor (TermMap h expr) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Methods

hmap :: (forall (n :: HyperType). HWitness (TermMap h expr) n -> (p # n) -> q # n) -> (TermMap h expr # p) -> TermMap h expr # q Source #

HFunctor (Var v expr) Source # 
Instance details

Defined in Hyper.Type.AST.Var

Methods

hmap :: (forall (n :: HyperType). HWitness (Var v expr) n -> (p # n) -> q # n) -> (Var v expr # p) -> Var v expr # q Source #

HFunctor (Scheme varTypes typ) Source # 
Instance details

Defined in Hyper.Type.AST.Scheme

Methods

hmap :: (forall (n :: HyperType). HWitness (Scheme varTypes typ) n -> (p # n) -> q # n) -> (Scheme varTypes typ # p) -> Scheme varTypes typ # q Source #

HFunctor (TypeSig vars term) Source # 
Instance details

Defined in Hyper.Type.AST.TypeSig

Methods

hmap :: (forall (n :: HyperType). HWitness (TypeSig vars term) n -> (p # n) -> q # n) -> (TypeSig vars term # p) -> TypeSig vars term # q Source #

HFunctor (FromNom nomId term) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hmap :: (forall (n :: HyperType). HWitness (FromNom nomId term) n -> (p # n) -> q # n) -> (FromNom nomId term # p) -> FromNom nomId term # q Source #

HFunctor (ToNom nomId term) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hmap :: (forall (n :: HyperType). HWitness (ToNom nomId term) n -> (p # n) -> q # n) -> (ToNom nomId term # p) -> ToNom nomId term # q Source #

HFunctor v => HFunctor (NominalInst n v) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hmap :: (forall (n0 :: HyperType). HWitness (NominalInst n v) n0 -> (p # n0) -> q # n0) -> (NominalInst n v # p) -> NominalInst n v # q Source #

HFunctor (Let v expr) Source # 
Instance details

Defined in Hyper.Type.AST.Let

Methods

hmap :: (forall (n :: HyperType). HWitness (Let v expr) n -> (p # n) -> q # n) -> (Let v expr # p) -> Let v expr # q Source #

HFunctor (Lam v expr) Source # 
Instance details

Defined in Hyper.Type.AST.Lam

Methods

hmap :: (forall (n :: HyperType). HWitness (Lam v expr) n -> (p # n) -> q # n) -> (Lam v expr # p) -> Lam v expr # q Source #

(HFunctor a, HFunctor b) => HFunctor (a :+: b) Source # 
Instance details

Defined in Hyper.Class.Functor

Methods

hmap :: (forall (n :: HyperType). HWitness (a :+: b) n -> (p # n) -> q # n) -> ((a :+: b) # p) -> (a :+: b) # q Source #

(HFunctor a, HFunctor b) => HFunctor (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Functor

Methods

hmap :: (forall (n :: HyperType). HWitness (a :*: b) n -> (p # n) -> q # n) -> ((a :*: b) # p) -> (a :*: b) # q Source #

HFunctor (FlatRowExtends key val rest) Source # 
Instance details

Defined in Hyper.Type.AST.Row

Methods

hmap :: (forall (n :: HyperType). HWitness (FlatRowExtends key val rest) n -> (p # n) -> q # n) -> (FlatRowExtends key val rest # p) -> FlatRowExtends key val rest # q Source #

HFunctor (RowExtend key val rest) Source # 
Instance details

Defined in Hyper.Type.AST.Row

Methods

hmap :: (forall (n :: HyperType). HWitness (RowExtend key val rest) n -> (p # n) -> q # n) -> (RowExtend key val rest # p) -> RowExtend key val rest # q Source #

HFunctor (TypedLam var typ expr) Source # 
Instance details

Defined in Hyper.Type.AST.TypedLam

Methods

hmap :: (forall (n :: HyperType). HWitness (TypedLam var typ expr) n -> (p # n) -> q # n) -> (TypedLam var typ expr # p) -> TypedLam var typ expr # q Source #

HFunctor h => HFunctor (M1 i m h) Source # 
Instance details

Defined in Hyper.Class.Functor

Methods

hmap :: (forall (n :: HyperType). HWitness (M1 i m h) n -> (p # n) -> q # n) -> (M1 i m h # p) -> M1 i m h # q Source #

hmapped1 :: forall h n p q. (HFunctor h, HNodesConstraint h ((~) n)) => Setter (h # p) (h # q) (p # n) (q # n) Source #

HFunctor variant of mapped for HyperTypes with a single node type.

Avoids using RankNTypes and thus can be composed with other optics.

class HNodes h => HFoldable h where Source #

A variant of Foldable for HyperTypes

Minimal complete definition

Nothing

Methods

hfoldMap :: Monoid a => (forall n. HWitness h n -> (p # n) -> a) -> (h # p) -> a Source #

HFoldable variant of foldMap

Gets a function from h's nodes (trees along witnesses that they are nodes of h) into a monoid and concats its results for all nodes.

default hfoldMap :: (Generic1 h, HFoldable (Rep1 h), HWitnessType h ~ HWitnessType (Rep1 h), Monoid a) => (forall n. HWitness h n -> (p # n) -> a) -> (h # p) -> a Source #

Instances

Instances details
HFoldable Pure Source # 
Instance details

Defined in Hyper.Type.Pure

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness Pure n -> (p # n) -> a) -> (Pure # p) -> a Source #

HFoldable Prune Source # 
Instance details

Defined in Hyper.Type.Prune

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness Prune n -> (p # n) -> a) -> (Prune # p) -> a Source #

HFoldable a => HFoldable (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hfoldMap :: Monoid a0 => (forall (n :: HyperType). HWitness (Ann a) n -> (p # n) -> a0) -> (Ann a # p) -> a0 Source #

HFoldable (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (ANode c) n -> (p # n) -> a) -> (ANode c # p) -> a Source #

Foldable f => HFoldable (F f) Source # 
Instance details

Defined in Hyper.Type.Functor

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (F f) n -> (p # n) -> a) -> (F f # p) -> a Source #

HFoldable (FuncType typ) Source # 
Instance details

Defined in Hyper.Type.AST.FuncType

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (FuncType typ) n -> (p # n) -> a) -> (FuncType typ # p) -> a Source #

HFoldable t => HFoldable (UnifyError t) Source # 
Instance details

Defined in Hyper.Unify.Error

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (UnifyError t) n -> (p # n) -> a) -> (UnifyError t # p) -> a Source #

HFoldable v => HFoldable (GTerm v) Source # 
Instance details

Defined in Hyper.Unify.Generalize

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (GTerm v) n -> (p # n) -> a) -> (GTerm v # p) -> a Source #

(Recursively HFoldable typ, HFoldable (NomVarTypes typ)) => HFoldable (LoadedNominalDecl typ) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (LoadedNominalDecl typ) n -> (p # n) -> a) -> (LoadedNominalDecl typ # p) -> a Source #

HFoldable (NominalDecl typ) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (NominalDecl typ) n -> (p # n) -> a) -> (NominalDecl typ # p) -> a Source #

HFoldable (App expr) Source # 
Instance details

Defined in Hyper.Type.AST.App

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (App expr) n -> (p # n) -> a) -> (App expr # p) -> a Source #

HFoldable h => HFoldable (Rec1 h) Source # 
Instance details

Defined in Hyper.Class.Foldable

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (Rec1 h) n -> (p # n) -> a) -> (Rec1 h # p) -> a Source #

HFoldable (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Foldable

Methods

hfoldMap :: Monoid a0 => (forall (n :: HyperType). HWitness (Const a) n -> (p # n) -> a0) -> (Const a # p) -> a0 Source #

Recursively HFoldable h => HFoldable (HFlip Ann h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (HFlip Ann h) n -> (p # n) -> a) -> (HFlip Ann h # p) -> a Source #

Recursively HFoldable ast => HFoldable (HFlip GTerm ast) Source # 
Instance details

Defined in Hyper.Unify.Generalize

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (HFlip GTerm ast) n -> (p # n) -> a) -> (HFlip GTerm ast # p) -> a Source #

HFoldable (InferOf e) => HFoldable (HFlip InferResult e) Source # 
Instance details

Defined in Hyper.Infer.Result

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (HFlip InferResult e) n -> (p # n) -> a) -> (HFlip InferResult e # p) -> a Source #

(HFoldable a, HFoldable b) => HFoldable (HCompose a b) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Methods

hfoldMap :: Monoid a0 => (forall (n :: HyperType). HWitness (HCompose a b) n -> (p # n) -> a0) -> (HCompose a b # p) -> a0 Source #

HFoldable (TermMap h expr) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (TermMap h expr) n -> (p # n) -> a) -> (TermMap h expr # p) -> a Source #

HFoldable (Var v expr) Source # 
Instance details

Defined in Hyper.Type.AST.Var

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (Var v expr) n -> (p # n) -> a) -> (Var v expr # p) -> a Source #

HFoldable (Scheme varTypes typ) Source # 
Instance details

Defined in Hyper.Type.AST.Scheme

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (Scheme varTypes typ) n -> (p # n) -> a) -> (Scheme varTypes typ # p) -> a Source #

HFoldable (TypeSig vars term) Source # 
Instance details

Defined in Hyper.Type.AST.TypeSig

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (TypeSig vars term) n -> (p # n) -> a) -> (TypeSig vars term # p) -> a Source #

HFoldable (FromNom nomId term) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (FromNom nomId term) n -> (p # n) -> a) -> (FromNom nomId term # p) -> a Source #

HFoldable (ToNom nomId term) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (ToNom nomId term) n -> (p # n) -> a) -> (ToNom nomId term # p) -> a Source #

HFoldable v => HFoldable (NominalInst n v) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hfoldMap :: Monoid a => (forall (n0 :: HyperType). HWitness (NominalInst n v) n0 -> (p # n0) -> a) -> (NominalInst n v # p) -> a Source #

HFoldable (Let v expr) Source # 
Instance details

Defined in Hyper.Type.AST.Let

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (Let v expr) n -> (p # n) -> a) -> (Let v expr # p) -> a Source #

HFoldable (Lam v expr) Source # 
Instance details

Defined in Hyper.Type.AST.Lam

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (Lam v expr) n -> (p # n) -> a) -> (Lam v expr # p) -> a Source #

(HFoldable a, HFoldable b) => HFoldable (a :+: b) Source # 
Instance details

Defined in Hyper.Class.Foldable

Methods

hfoldMap :: Monoid a0 => (forall (n :: HyperType). HWitness (a :+: b) n -> (p # n) -> a0) -> ((a :+: b) # p) -> a0 Source #

(HFoldable a, HFoldable b) => HFoldable (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Foldable

Methods

hfoldMap :: Monoid a0 => (forall (n :: HyperType). HWitness (a :*: b) n -> (p # n) -> a0) -> ((a :*: b) # p) -> a0 Source #

HFoldable (FlatRowExtends key val rest) Source # 
Instance details

Defined in Hyper.Type.AST.Row

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (FlatRowExtends key val rest) n -> (p # n) -> a) -> (FlatRowExtends key val rest # p) -> a Source #

HFoldable (RowExtend key val rest) Source # 
Instance details

Defined in Hyper.Type.AST.Row

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (RowExtend key val rest) n -> (p # n) -> a) -> (RowExtend key val rest # p) -> a Source #

HFoldable (TypedLam var typ expr) Source # 
Instance details

Defined in Hyper.Type.AST.TypedLam

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (TypedLam var typ expr) n -> (p # n) -> a) -> (TypedLam var typ expr # p) -> a Source #

HFoldable h => HFoldable (M1 i m h) Source # 
Instance details

Defined in Hyper.Class.Foldable

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (M1 i m h) n -> (p # n) -> a) -> (M1 i m h # p) -> a Source #

hfolded1 :: forall h n p. (HFoldable h, HNodesConstraint h ((~) n)) => Fold (h # p) (p # n) Source #

HFoldable variant for folded for HyperTypes with a single node type.

Avoids using RankNTypes and thus can be composed with other optics.

htraverse_ :: (Applicative f, HFoldable h) => (forall c. HWitness h c -> (m # c) -> f ()) -> (h # m) -> f () Source #

HFoldable variant of traverse_

Applise a given action on all subtrees (represented as trees along witnesses that they are nodes of h)

htraverse1_ :: forall f h n p. (Applicative f, HFoldable h, HNodesConstraint h ((~) n)) => ((p # n) -> f ()) -> (h # p) -> f () Source #

HFoldable variant of traverse_ for HyperTypes with a single node type (avoids using RankNTypes)

class (HFunctor h, HFoldable h) => HTraversable h where Source #

A variant of Traversable for HyperTypes

Minimal complete definition

Nothing

Methods

hsequence :: Applicative f => (h # ContainedH f p) -> f (h # p) Source #

default hsequence :: (Generic1 h, HTraversable (Rep1 h), Applicative f) => (h # ContainedH f p) -> f (h # p) Source #

Instances

Instances details
HTraversable Pure Source # 
Instance details

Defined in Hyper.Type.Pure

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (Pure # ContainedH f p) -> f (Pure # p) Source #

HTraversable Prune Source # 
Instance details

Defined in Hyper.Type.Prune

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (Prune # ContainedH f p) -> f (Prune # p) Source #

HTraversable a => HTraversable (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (Ann a # ContainedH f p) -> f (Ann a # p) Source #

HTraversable (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (ANode c # ContainedH f p) -> f (ANode c # p) Source #

Traversable f => HTraversable (F f) Source # 
Instance details

Defined in Hyper.Type.Functor

Methods

hsequence :: forall f0 (p :: AHyperType -> Type). Applicative f0 => (F f # ContainedH f0 p) -> f0 (F f # p) Source #

HTraversable (FuncType typ) Source # 
Instance details

Defined in Hyper.Type.AST.FuncType

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (FuncType typ # ContainedH f p) -> f (FuncType typ # p) Source #

HTraversable t => HTraversable (UnifyError t) Source # 
Instance details

Defined in Hyper.Unify.Error

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (UnifyError t # ContainedH f p) -> f (UnifyError t # p) Source #

HTraversable v => HTraversable (GTerm v) Source # 
Instance details

Defined in Hyper.Unify.Generalize

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (GTerm v # ContainedH f p) -> f (GTerm v # p) Source #

(RTraversable typ, HTraversable (NomVarTypes typ)) => HTraversable (LoadedNominalDecl typ) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (LoadedNominalDecl typ # ContainedH f p) -> f (LoadedNominalDecl typ # p) Source #

HTraversable (NominalDecl typ) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (NominalDecl typ # ContainedH f p) -> f (NominalDecl typ # p) Source #

HTraversable (App expr) Source # 
Instance details

Defined in Hyper.Type.AST.App

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (App expr # ContainedH f p) -> f (App expr # p) Source #

HTraversable h => HTraversable (Rec1 h) Source # 
Instance details

Defined in Hyper.Class.Traversable

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (Rec1 h # ContainedH f p) -> f (Rec1 h # p) Source #

HTraversable (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Traversable

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (Const a # ContainedH f p) -> f (Const a # p) Source #

RTraversable h => HTraversable (HFlip Ann h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (HFlip Ann h # ContainedH f p) -> f (HFlip Ann h # p) Source #

RTraversable ast => HTraversable (HFlip GTerm ast) Source # 
Instance details

Defined in Hyper.Unify.Generalize

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (HFlip GTerm ast # ContainedH f p) -> f (HFlip GTerm ast # p) Source #

HTraversable (InferOf e) => HTraversable (HFlip InferResult e) Source # 
Instance details

Defined in Hyper.Infer.Result

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (HFlip InferResult e # ContainedH f p) -> f (HFlip InferResult e # p) Source #

(HTraversable a, HTraversable b) => HTraversable (HCompose a b) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (HCompose a b # ContainedH f p) -> f (HCompose a b # p) Source #

HTraversable (TermMap h expr) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (TermMap h expr # ContainedH f p) -> f (TermMap h expr # p) Source #

HTraversable (Var v expr) Source # 
Instance details

Defined in Hyper.Type.AST.Var

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (Var v expr # ContainedH f p) -> f (Var v expr # p) Source #

HTraversable (Scheme varTypes typ) Source # 
Instance details

Defined in Hyper.Type.AST.Scheme

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (Scheme varTypes typ # ContainedH f p) -> f (Scheme varTypes typ # p) Source #

HTraversable (TypeSig vars term) Source # 
Instance details

Defined in Hyper.Type.AST.TypeSig

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (TypeSig vars term # ContainedH f p) -> f (TypeSig vars term # p) Source #

HTraversable (FromNom nomId term) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (FromNom nomId term # ContainedH f p) -> f (FromNom nomId term # p) Source #

HTraversable (ToNom nomId term) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (ToNom nomId term # ContainedH f p) -> f (ToNom nomId term # p) Source #

HTraversable v => HTraversable (NominalInst n v) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (NominalInst n v # ContainedH f p) -> f (NominalInst n v # p) Source #

HTraversable (Let v expr) Source # 
Instance details

Defined in Hyper.Type.AST.Let

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (Let v expr # ContainedH f p) -> f (Let v expr # p) Source #

HTraversable (Lam v expr) Source # 
Instance details

Defined in Hyper.Type.AST.Lam

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (Lam v expr # ContainedH f p) -> f (Lam v expr # p) Source #

(HTraversable a, HTraversable b) => HTraversable (a :+: b) Source # 
Instance details

Defined in Hyper.Class.Traversable

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => ((a :+: b) # ContainedH f p) -> f ((a :+: b) # p) Source #

(HTraversable a, HTraversable b) => HTraversable (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Traversable

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => ((a :*: b) # ContainedH f p) -> f ((a :*: b) # p) Source #

HTraversable (FlatRowExtends key val rest) Source # 
Instance details

Defined in Hyper.Type.AST.Row

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (FlatRowExtends key val rest # ContainedH f p) -> f (FlatRowExtends key val rest # p) Source #

HTraversable (RowExtend key val rest) Source # 
Instance details

Defined in Hyper.Type.AST.Row

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (RowExtend key val rest # ContainedH f p) -> f (RowExtend key val rest # p) Source #

HTraversable (TypedLam var typ expr) Source # 
Instance details

Defined in Hyper.Type.AST.TypedLam

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (TypedLam var typ expr # ContainedH f p) -> f (TypedLam var typ expr # p) Source #

HTraversable h => HTraversable (M1 i m h) Source # 
Instance details

Defined in Hyper.Class.Traversable

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (M1 i m h # ContainedH f p) -> f (M1 i m h # p) Source #

htraverse :: (Applicative f, HTraversable h) => (forall n. HWitness h n -> (p # n) -> f (q # n)) -> (h # p) -> f (h # q) Source #

htraverse1 :: (HTraversable h, HNodesConstraint h ((~) n)) => Traversal (h # p) (h # q) (p # n) (q # n) Source #

HTraversable variant of traverse for HyperTypes with a single node type.

It is a valid Traversal as it avoids using RankNTypes.

newtype HFlip f x h Source #

Flip the order of the last two type parameters of a HyperType.

Useful to use instances of classes such as HTraversable which are available on the flipped HyperType. For example GTerm has instances when flipped.

Constructors

MkHFlip (f (GetHyperType h) # x) 

Instances

Instances details
RNodes h => HNodes (HFlip Ann h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Associated Types

type HNodesConstraint (HFlip Ann h) c Source #

type HWitnessType (HFlip Ann h) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (HFlip Ann h) c => HWitness (HFlip Ann h) n -> Proxy c -> (c n => r) -> r Source #

RNodes a => HNodes (HFlip GTerm a) Source # 
Instance details

Defined in Hyper.Unify.Generalize

Associated Types

type HNodesConstraint (HFlip GTerm a) c Source #

type HWitnessType (HFlip GTerm a) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (HFlip GTerm a) c => HWitness (HFlip GTerm a) n -> Proxy c -> (c n => r) -> r Source #

HNodes (InferOf e) => HNodes (HFlip InferResult e) Source # 
Instance details

Defined in Hyper.Infer.Result

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (HFlip InferResult e) c => HWitness (HFlip InferResult e) n -> Proxy c -> (c n => r) -> r Source #

Recursively HFunctor h => HFunctor (HFlip Ann h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hmap :: (forall (n :: HyperType). HWitness (HFlip Ann h) n -> (p # n) -> q # n) -> (HFlip Ann h # p) -> HFlip Ann h # q Source #

Recursively HFunctor ast => HFunctor (HFlip GTerm ast) Source # 
Instance details

Defined in Hyper.Unify.Generalize

Methods

hmap :: (forall (n :: HyperType). HWitness (HFlip GTerm ast) n -> (p # n) -> q # n) -> (HFlip GTerm ast # p) -> HFlip GTerm ast # q Source #

HFunctor (InferOf e) => HFunctor (HFlip InferResult e) Source # 
Instance details

Defined in Hyper.Infer.Result

Methods

hmap :: (forall (n :: HyperType). HWitness (HFlip InferResult e) n -> (p # n) -> q # n) -> (HFlip InferResult e # p) -> HFlip InferResult e # q Source #

Recursively HFoldable h => HFoldable (HFlip Ann h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (HFlip Ann h) n -> (p # n) -> a) -> (HFlip Ann h # p) -> a Source #

Recursively HFoldable ast => HFoldable (HFlip GTerm ast) Source # 
Instance details

Defined in Hyper.Unify.Generalize

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (HFlip GTerm ast) n -> (p # n) -> a) -> (HFlip GTerm ast # p) -> a Source #

HFoldable (InferOf e) => HFoldable (HFlip InferResult e) Source # 
Instance details

Defined in Hyper.Infer.Result

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (HFlip InferResult e) n -> (p # n) -> a) -> (HFlip InferResult e # p) -> a Source #

RTraversable h => HTraversable (HFlip Ann h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (HFlip Ann h # ContainedH f p) -> f (HFlip Ann h # p) Source #

RTraversable ast => HTraversable (HFlip GTerm ast) Source # 
Instance details

Defined in Hyper.Unify.Generalize

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (HFlip GTerm ast # ContainedH f p) -> f (HFlip GTerm ast # p) Source #

HTraversable (InferOf e) => HTraversable (HFlip InferResult e) Source # 
Instance details

Defined in Hyper.Infer.Result

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (HFlip InferResult e # ContainedH f p) -> f (HFlip InferResult e # p) Source #

(Recursively HContext h, Recursively HFunctor h) => HContext (HFlip Ann h) Source # 
Instance details

Defined in Hyper.Class.Context

Methods

hcontext :: forall (p :: HyperType). (HFlip Ann h # p) -> HFlip Ann h # (HFunc p (Const (HFlip Ann h # p)) :*: p) Source #

Constraints (HFlip f x h) Eq => Eq (HFlip f x h) Source # 
Instance details

Defined in Hyper.Combinator.Flip

Methods

(==) :: HFlip f x h -> HFlip f x h -> Bool #

(/=) :: HFlip f x h -> HFlip f x h -> Bool #

Constraints (HFlip f x h) Ord => Ord (HFlip f x h) Source # 
Instance details

Defined in Hyper.Combinator.Flip

Methods

compare :: HFlip f x h -> HFlip f x h -> Ordering #

(<) :: HFlip f x h -> HFlip f x h -> Bool #

(<=) :: HFlip f x h -> HFlip f x h -> Bool #

(>) :: HFlip f x h -> HFlip f x h -> Bool #

(>=) :: HFlip f x h -> HFlip f x h -> Bool #

max :: HFlip f x h -> HFlip f x h -> HFlip f x h #

min :: HFlip f x h -> HFlip f x h -> HFlip f x h #

Constraints (HFlip f x h) Show => Show (HFlip f x h) Source # 
Instance details

Defined in Hyper.Combinator.Flip

Methods

showsPrec :: Int -> HFlip f x h -> ShowS #

show :: HFlip f x h -> String #

showList :: [HFlip f x h] -> ShowS #

Generic (HFlip f x h) Source # 
Instance details

Defined in Hyper.Combinator.Flip

Associated Types

type Rep (HFlip f x h) :: Type -> Type #

Methods

from :: HFlip f x h -> Rep (HFlip f x h) x0 #

to :: Rep (HFlip f x h) x0 -> HFlip f x h #

Constraints (HFlip f x h) Binary => Binary (HFlip f x h) Source # 
Instance details

Defined in Hyper.Combinator.Flip

Methods

put :: HFlip f x h -> Put #

get :: Get (HFlip f x h) #

putList :: [HFlip f x h] -> Put #

Constraints (HFlip f x h) NFData => NFData (HFlip f x h) Source # 
Instance details

Defined in Hyper.Combinator.Flip

Methods

rnf :: HFlip f x h -> () #

type HWitnessType (HFlip Ann h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

type HWitnessType (HFlip GTerm a) Source # 
Instance details

Defined in Hyper.Unify.Generalize

type HWitnessType (HFlip InferResult e) Source # 
Instance details

Defined in Hyper.Infer.Result

type HNodesConstraint (HFlip Ann h) c Source # 
Instance details

Defined in Hyper.Combinator.Ann

type HNodesConstraint (HFlip Ann h) c = (Recursive c, c h)
type HNodesConstraint (HFlip GTerm a) c Source # 
Instance details

Defined in Hyper.Unify.Generalize

type HNodesConstraint (HFlip GTerm a) c = (c a, Recursive c)
type HNodesConstraint (HFlip InferResult e) c Source # 
Instance details

Defined in Hyper.Infer.Result

type Rep (HFlip f x h) Source # 
Instance details

Defined in Hyper.Combinator.Flip

type Rep (HFlip f x h) = D1 ('MetaData "HFlip" "Hyper.Combinator.Flip" "hypertypes-0.1.0.2-GDiSRF0EwgQ6Mkx3yytlTL" 'True) (C1 ('MetaCons "MkHFlip" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f (GetHyperType h) # x))))

_HFlip :: Iso (HFlip f0 x0 # k0) (HFlip f1 x1 # k1) (f0 k0 # x0) (f1 k1 # x1) Source #

An Iso from Flip to its content.

Using _Flip rather than the MkFlip data constructor is recommended, because it helps the type inference know that ANode c is parameterized with a HyperType.

hflipped :: Iso (f0 k0 # x0) (f1 k1 # x1) (HFlip f0 x0 # k0) (HFlip f1 x1 # k1) Source #

htraverseFlipped :: (Applicative f, HTraversable (HFlip h a)) => (forall n. HWitness (HFlip h a) n -> (p # n) -> f (q # n)) -> (h p # a) -> f (h q # a) Source #

Convinience function for traversal over second last HyperType argument.

data family MorphWitness s t :: HyperType -> HyperType -> Type Source #

Instances

Instances details
data MorphWitness (ANode a) (ANode b) _ _ Source # 
Instance details

Defined in Hyper.Combinator.ANode

data MorphWitness (ANode a) (ANode b) _ _ where
data MorphWitness (FuncType typ0) (FuncType typ1) _ _ Source # 
Instance details

Defined in Hyper.Type.AST.FuncType

data MorphWitness (FuncType typ0) (FuncType typ1) _ _ where
data MorphWitness (App expr0) (App expr1) _ _ Source # 
Instance details

Defined in Hyper.Type.AST.App

data MorphWitness (App expr0) (App expr1) _ _ where
data MorphWitness (TermMap h expr0) (TermMap h expr1) _ _ Source # 
Instance details

Defined in Hyper.Type.AST.Map

data MorphWitness (TermMap h expr0) (TermMap h expr1) _ _ where
data MorphWitness (Var v expr0) (Var v expr1) _ _ Source # 
Instance details

Defined in Hyper.Type.AST.Var

data MorphWitness (Var v expr0) (Var v expr1) _ _
data MorphWitness (ToNom nomId term0) (ToNom nomId term1) _ _ Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

data MorphWitness (ToNom nomId term0) (ToNom nomId term1) _ _ where
data MorphWitness (Let v expr0) (Let v expr1) _ _ Source # 
Instance details

Defined in Hyper.Type.AST.Let

data MorphWitness (Let v expr0) (Let v expr1) _ _ where
data MorphWitness (Lam v expr0) (Lam v expr1) _ _ Source # 
Instance details

Defined in Hyper.Type.AST.Lam

data MorphWitness (Lam v expr0) (Lam v expr1) _ _ where
data MorphWitness (RowExtend key val0 rest0) (RowExtend key val1 rest1) _ _ Source # 
Instance details

Defined in Hyper.Type.AST.Row

data MorphWitness (RowExtend key val0 rest0) (RowExtend key val1 rest1) _ _ where
data MorphWitness (TypedLam var typ0 expr0) (TypedLam var typ1 expr1) _ _ Source # 
Instance details

Defined in Hyper.Type.AST.TypedLam

data MorphWitness (TypedLam var typ0 expr0) (TypedLam var typ1 expr1) _ _ where

type HApplicative h = (HPointed h, HApply h) Source #

A variant of Applicative for HyperTypes.

class HFunctor h => HApply h where Source #

A variant of Apply for HyperTypes.

A type which has HApply and HPointed instances also has HApplicative, which is the equivalent to the Applicative class.

Methods

hzip :: (h # p) -> (h # q) -> h # (p :*: q) Source #

Combine child values

>>> hzip (Person name0 age0) (Person name1 age1)
Person (Pair name0 name1) (Pair age0 age1)

Instances

Instances details
HApply Pure Source # 
Instance details

Defined in Hyper.Type.Pure

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (Pure # p) -> (Pure # q) -> Pure # (p :*: q) Source #

HApply Prune Source # 
Instance details

Defined in Hyper.Type.Prune

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (Prune # p) -> (Prune # q) -> Prune # (p :*: q) Source #

HApply a => HApply (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (Ann a # p) -> (Ann a # q) -> Ann a # (p :*: q) Source #

HApply (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (ANode c # p) -> (ANode c # q) -> ANode c # (p :*: q) Source #

Applicative f => HApply (F f) Source # 
Instance details

Defined in Hyper.Type.Functor

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (F f # p) -> (F f # q) -> F f # (p :*: q) Source #

HApply (FuncType typ) Source # 
Instance details

Defined in Hyper.Type.AST.FuncType

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (FuncType typ # p) -> (FuncType typ # q) -> FuncType typ # (p :*: q) Source #

HApply (App expr) Source # 
Instance details

Defined in Hyper.Type.AST.App

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (App expr # p) -> (App expr # q) -> App expr # (p :*: q) Source #

Semigroup a => HApply (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Apply

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (Const a # p) -> (Const a # q) -> Const a # (p :*: q) Source #

(HApply a, HApply b) => HApply (HCompose a b) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (HCompose a b # p) -> (HCompose a b # q) -> HCompose a b # (p :*: q) Source #

Applicative (Map h) => HApply (TermMap h expr) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (TermMap h expr # p) -> (TermMap h expr # q) -> TermMap h expr # (p :*: q) Source #

Semigroup v => HApply (Var v expr) Source # 
Instance details

Defined in Hyper.Type.AST.Var

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (Var v expr # p) -> (Var v expr # q) -> Var v expr # (p :*: q) Source #

Semigroup (varTypes # QVars) => HApply (Scheme varTypes typ) Source # 
Instance details

Defined in Hyper.Type.AST.Scheme

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (Scheme varTypes typ # p) -> (Scheme varTypes typ # q) -> Scheme varTypes typ # (p :*: q) Source #

HApply (TypeSig vars term) Source # 
Instance details

Defined in Hyper.Type.AST.TypeSig

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (TypeSig vars term # p) -> (TypeSig vars term # q) -> TypeSig vars term # (p :*: q) Source #

Semigroup nomId => HApply (FromNom nomId term) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (FromNom nomId term # p) -> (FromNom nomId term # q) -> FromNom nomId term # (p :*: q) Source #

Semigroup nomId => HApply (ToNom nomId term) Source # 
Instance details

Defined in Hyper.Type.AST.Nominal

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (ToNom nomId term # p) -> (ToNom nomId term # q) -> ToNom nomId term # (p :*: q) Source #

Semigroup v => HApply (Let v expr) Source # 
Instance details

Defined in Hyper.Type.AST.Let

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (Let v expr # p) -> (Let v expr # q) -> Let v expr # (p :*: q) Source #

Semigroup v => HApply (Lam v expr) Source # 
Instance details

Defined in Hyper.Type.AST.Lam

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (Lam v expr # p) -> (Lam v expr # q) -> Lam v expr # (p :*: q) Source #

(HApply a, HApply b) => HApply (a :*: b) Source # 
Instance details

Defined in Hyper.Class.Apply

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). ((a :*: b) # p) -> ((a :*: b) # q) -> (a :*: b) # (p :*: q) Source #

Applicative (Map key) => HApply (FlatRowExtends key val rest) Source # 
Instance details

Defined in Hyper.Type.AST.Row

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (FlatRowExtends key val rest # p) -> (FlatRowExtends key val rest # q) -> FlatRowExtends key val rest # (p :*: q) Source #

Semigroup key => HApply (RowExtend key val rest) Source # 
Instance details

Defined in Hyper.Type.AST.Row

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (RowExtend key val rest # p) -> (RowExtend key val rest # q) -> RowExtend key val rest # (p :*: q) Source #

Semigroup var => HApply (TypedLam var typ expr) Source # 
Instance details

Defined in Hyper.Type.AST.TypedLam

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (TypedLam var typ expr # p) -> (TypedLam var typ expr # q) -> TypedLam var typ expr # (p :*: q) Source #

liftH2 :: HApply h => (forall n. HWitness h n -> (p # n) -> (q # n) -> r # n) -> (h # p) -> (h # q) -> h # r Source #

HApply variant of liftA2

makeHApplicativeBases :: Name -> DecsQ Source #

Generate instances of HApply, HFunctor, HPointed and HNodes, which together form HApplicative.

makeHTraversableApplyAndBases :: Name -> DecsQ Source #

Generate HTraversable and HApply instances along with all of their base classes: HFoldable, HFunctor, HPointed, and HNodes.

makeHTraversableAndBases :: Name -> DecsQ Source #

Generate a HTraversable instance along with the instance of its base classes: HFoldable, HFunctor, and HNodes.

newtype Pure h Source #

A HyperType to express the simplest plain form of a nested higher-kinded data structure

Constructors

Pure (h :# Pure) 

Instances

Instances details
HNodes Pure Source # 
Instance details

Defined in Hyper.Type.Pure

Associated Types

type HNodesConstraint Pure c Source #

type HWitnessType Pure :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint Pure c => HWitness Pure n -> Proxy c -> (c n => r) -> r Source #

HPointed Pure Source # 
Instance details

Defined in Hyper.Type.Pure

Methods

hpure :: (forall (n :: HyperType). HWitness Pure n -> p # n) -> Pure # p Source #

HFunctor Pure Source # 
Instance details

Defined in Hyper.Type.Pure

Methods

hmap :: (forall (n :: HyperType). HWitness Pure n -> (p # n) -> q # n) -> (Pure # p) -> Pure # q Source #

HFoldable Pure Source # 
Instance details

Defined in Hyper.Type.Pure

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness Pure n -> (p # n) -> a) -> (Pure # p) -> a Source #

HTraversable Pure Source # 
Instance details

Defined in Hyper.Type.Pure

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (Pure # ContainedH f p) -> f (Pure # p) Source #

HApply Pure Source # 
Instance details

Defined in Hyper.Type.Pure

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (Pure # p) -> (Pure # q) -> Pure # (p :*: q) Source #

ZipMatch Pure Source # 
Instance details

Defined in Hyper.Class.ZipMatch

Methods

zipMatch :: forall (p :: HyperType) (q :: HyperType). (Pure # p) -> (Pure # q) -> Maybe (Pure # (p :*: q)) Source #

RTraversable Pure Source # 
Instance details

Defined in Hyper.Class.Recursive

RNodes Pure Source # 
Instance details

Defined in Hyper.Class.Recursive

HMonad Pure Source # 
Instance details

Defined in Hyper.Class.Monad

Methods

hjoin :: forall (p :: HyperType). Recursively HFunctor p => (HCompose Pure Pure # p) -> Pure # p Source #

HContext Pure Source # 
Instance details

Defined in Hyper.Class.Context

Methods

hcontext :: forall (p :: HyperType). (Pure # p) -> Pure # (HFunc p (Const (Pure # p)) :*: p) Source #

c Pure => Recursively c Pure Source # 
Instance details

Defined in Hyper.Class.Recursive

Constraints (Pure h) Eq => Eq (Pure h) Source # 
Instance details

Defined in Hyper.Type.Pure

Methods

(==) :: Pure h -> Pure h -> Bool #

(/=) :: Pure h -> Pure h -> Bool #

Constraints (Pure h) Ord => Ord (Pure h) Source # 
Instance details

Defined in Hyper.Type.Pure

Methods

compare :: Pure h -> Pure h -> Ordering #

(<) :: Pure h -> Pure h -> Bool #

(<=) :: Pure h -> Pure h -> Bool #

(>) :: Pure h -> Pure h -> Bool #

(>=) :: Pure h -> Pure h -> Bool #

max :: Pure h -> Pure h -> Pure h #

min :: Pure h -> Pure h -> Pure h #

Constraints (Pure h) Show => Show (Pure h) Source # 
Instance details

Defined in Hyper.Type.Pure

Methods

showsPrec :: Int -> Pure h -> ShowS #

show :: Pure h -> String #

showList :: [Pure h] -> ShowS #

Generic (Pure h) Source # 
Instance details

Defined in Hyper.Type.Pure

Associated Types

type Rep (Pure h) :: Type -> Type #

Methods

from :: Pure h -> Rep (Pure h) x #

to :: Rep (Pure h) x -> Pure h #

Constraints (Pure h) Binary => Binary (Pure h) Source # 
Instance details

Defined in Hyper.Type.Pure

Methods

put :: Pure h -> Put #

get :: Get (Pure h) #

putList :: [Pure h] -> Put #

Constraints (Pure h) NFData => NFData (Pure h) Source # 
Instance details

Defined in Hyper.Type.Pure

Methods

rnf :: Pure h -> () #

Pretty (h :# Pure) => Pretty (Pure h) Source # 
Instance details

Defined in Hyper.Type.Pure

Methods

pPrintPrec :: PrettyLevel -> Rational -> Pure h -> Doc #

pPrint :: Pure h -> Doc #

pPrintList :: PrettyLevel -> [Pure h] -> Doc #

type HWitnessType Pure Source # 
Instance details

Defined in Hyper.Type.Pure

type HNodesConstraint Pure constraint Source # 
Instance details

Defined in Hyper.Type.Pure

type HNodesConstraint Pure constraint = constraint Pure
type Rep (Pure h) Source # 
Instance details

Defined in Hyper.Type.Pure

type Rep (Pure h) = D1 ('MetaData "Pure" "Hyper.Type.Pure" "hypertypes-0.1.0.2-GDiSRF0EwgQ6Mkx3yytlTL" 'True) (C1 ('MetaCons "Pure" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (h :# Pure))))

data W_Pure node where Source #

Constructors

W_Pure_Pure :: W_Pure Pure 

_Pure :: Iso (Pure # h) (Pure # j) (h # Pure) (j # Pure) Source #

An Iso from Pure to its content.

Using _Pure rather than the Pure data constructor is recommended, because it helps the type inference know that Pure is parameterized with a HyperType.

makeZipMatch :: Name -> DecsQ Source #

Generate a ZipMatch instance

class (HTraversable h, Recursively HFunctor h, Recursively HFoldable h) => RTraversable h Source #

A class of HyperTypes which recursively implement HTraversable

Instances

Instances details
RTraversable Pure Source # 
Instance details

Defined in Hyper.Class.Recursive

RTraversable Prune Source # 
Instance details

Defined in Hyper.Type.Prune

Recursive RTraversable Source # 
Instance details

Defined in Hyper.Class.Recursive

Methods

recurse :: forall (h :: HyperType) proxy. (HNodes h, RTraversable h) => proxy (RTraversable h) -> Dict (HNodesConstraint h RTraversable) Source #

RTraversable a => RTraversable (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

RTraversable n => RTraversable (ANode n) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Traversable f => RTraversable (F f) Source # 
Instance details

Defined in Hyper.Type.Functor

RTraversable e => RTraversable (App e) Source # 
Instance details

Defined in Hyper.Type.AST.App

RTraversable (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Recursive

(HTraversable a, HTraversable b, HNodesConstraint a (HComposeConstraint0 RNodes b), HNodesConstraint a (HComposeConstraint0 (Recursively HFunctor) b), HNodesConstraint a (HComposeConstraint0 (Recursively HFoldable) b), HNodesConstraint a (HComposeConstraint0 RTraversable b)) => RTraversable (HCompose a b) Source # 
Instance details

Defined in Hyper.Combinator.Compose

(HTraversable (Scheme v t), RTraversable t) => RTraversable (Scheme v t) Source # 
Instance details

Defined in Hyper.Type.AST.Scheme

RTraversable t => RTraversable (Lam v t) Source # 
Instance details

Defined in Hyper.Type.AST.Lam

(RTraversable t, RTraversable e) => RTraversable (TypedLam v t e) Source # 
Instance details

Defined in Hyper.Type.AST.TypedLam

class RNodes h => Recursively c h where Source #

A constraint lifted to apply recursively.

Note that in cases where a constraint has dependencies other than RNodes, one will want to create a class such as RTraversable to capture the dependencies, otherwise using it in class contexts will be quite unergonomic.

Minimal complete definition

Nothing

Methods

recursively :: proxy (c h) -> Dict (c h, HNodesConstraint h (Recursively c)) Source #

default recursively :: (c h, HNodesConstraint h (Recursively c)) => proxy (c h) -> Dict (c h, HNodesConstraint h (Recursively c)) Source #

Instances

Instances details
c Pure => Recursively c Pure Source # 
Instance details

Defined in Hyper.Class.Recursive

c Prune => Recursively c Prune Source # 
Instance details

Defined in Hyper.Type.Prune

(c (Ann a), Recursively c a) => Recursively c (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

recursively :: proxy (c (Ann a)) -> Dict (c (Ann a), HNodesConstraint (Ann a) (Recursively c)) Source #

(c (ANode n), Recursively c n) => Recursively c (ANode n) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

recursively :: proxy (c (ANode n)) -> Dict (c (ANode n), HNodesConstraint (ANode n) (Recursively c)) Source #

c (F f) => Recursively c (F f) Source # 
Instance details

Defined in Hyper.Type.Functor

Methods

recursively :: proxy (c (F f)) -> Dict (c (F f), HNodesConstraint (F f) (Recursively c)) Source #

(c (App e), Recursively c e) => Recursively c (App e) Source # 
Instance details

Defined in Hyper.Type.AST.App

Methods

recursively :: proxy (c (App e)) -> Dict (c (App e), HNodesConstraint (App e) (Recursively c)) Source #

c (Const a :: AHyperType -> Type) => Recursively c (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Recursive

Methods

recursively :: proxy (c (Const a)) -> Dict (c (Const a), HNodesConstraint (Const a) (Recursively c)) Source #

(HNodes h0, HNodes h1, c (HCompose h0 h1), HNodesConstraint h0 (HComposeConstraint0 RNodes h1), HNodesConstraint h0 (HComposeConstraint0 (Recursively c) h1)) => Recursively c (HCompose h0 h1) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Methods

recursively :: proxy (c (HCompose h0 h1)) -> Dict (c (HCompose h0 h1), HNodesConstraint (HCompose h0 h1) (Recursively c)) Source #

(c (Scheme v t), Recursively c t) => Recursively c (Scheme v t) Source # 
Instance details

Defined in Hyper.Type.AST.Scheme

Methods

recursively :: proxy (c (Scheme v t)) -> Dict (c (Scheme v t), HNodesConstraint (Scheme v t) (Recursively c)) Source #

(c (Lam v t), Recursively c t) => Recursively c (Lam v t) Source # 
Instance details

Defined in Hyper.Type.AST.Lam

Methods

recursively :: proxy (c (Lam v t)) -> Dict (c (Lam v t), HNodesConstraint (Lam v t) (Recursively c)) Source #

(c (TypedLam v t e), Recursively c t, Recursively c e) => Recursively c (TypedLam v t e) Source # 
Instance details

Defined in Hyper.Type.AST.TypedLam

Methods

recursively :: proxy (c (TypedLam v t e)) -> Dict (c (TypedLam v t e), HNodesConstraint (TypedLam v t e) (Recursively c)) Source #

Recursive (Recursively c) Source # 
Instance details

Defined in Hyper.Class.Recursive

Methods

recurse :: forall (h :: HyperType) proxy. (HNodes h, Recursively c h) => proxy (Recursively c h) -> Dict (HNodesConstraint h (Recursively c)) Source #

class HNodes h => RNodes h Source #

A class of HyperTypes which recursively implement HNodes

Instances

Instances details
RNodes Pure Source # 
Instance details

Defined in Hyper.Class.Recursive

RNodes Prune Source # 
Instance details

Defined in Hyper.Type.Prune

Recursive RNodes Source # 
Instance details

Defined in Hyper.Class.Recursive

Methods

recurse :: forall (h :: HyperType) proxy. (HNodes h, RNodes h) => proxy (RNodes h) -> Dict (HNodesConstraint h RNodes) Source #

RNodes a => RNodes (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

recursiveHNodes :: proxy (Ann a) -> Dict (HNodesConstraint (Ann a) RNodes) Source #

RNodes n => RNodes (ANode n) Source # 
Instance details

Defined in Hyper.Combinator.ANode

RNodes (F f) Source # 
Instance details

Defined in Hyper.Type.Functor

Methods

recursiveHNodes :: proxy (F f) -> Dict (HNodesConstraint (F f) RNodes) Source #

RNodes e => RNodes (App e) Source # 
Instance details

Defined in Hyper.Type.AST.App

Methods

recursiveHNodes :: proxy (App e) -> Dict (HNodesConstraint (App e) RNodes) Source #

RNodes (Const a :: AHyperType -> Type) Source # 
Instance details

Defined in Hyper.Class.Recursive

(HNodes a, HNodes b, HNodesConstraint a (HComposeConstraint0 RNodes b)) => RNodes (HCompose a b) Source # 
Instance details

Defined in Hyper.Combinator.Compose

RNodes t => RNodes (Scheme v t) Source # 
Instance details

Defined in Hyper.Type.AST.Scheme

Methods

recursiveHNodes :: proxy (Scheme v t) -> Dict (HNodesConstraint (Scheme v t) RNodes) Source #

RNodes t => RNodes (Lam v t) Source # 
Instance details

Defined in Hyper.Type.AST.Lam

Methods

recursiveHNodes :: proxy (Lam v t) -> Dict (HNodesConstraint (Lam v t) RNodes) Source #

(RNodes t, RNodes e) => RNodes (TypedLam v t e) Source # 
Instance details

Defined in Hyper.Type.AST.TypedLam

Methods

recursiveHNodes :: proxy (TypedLam v t e) -> Dict (HNodesConstraint (TypedLam v t e) RNodes) Source #

data Ann a h Source #

Constructors

Ann 

Fields

Instances

Instances details
(c (Ann a), Recursively c a) => Recursively c (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

recursively :: proxy (c (Ann a)) -> Dict (c (Ann a), HNodesConstraint (Ann a) (Recursively c)) Source #

HNodes a => HNodes (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Associated Types

type HNodesConstraint (Ann a) c Source #

type HWitnessType (Ann a) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (Ann a) c => HWitness (Ann a) n -> Proxy c -> (c n => r) -> r Source #

HPointed a => HPointed (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hpure :: (forall (n :: HyperType). HWitness (Ann a) n -> p # n) -> Ann a # p Source #

HFunctor a => HFunctor (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hmap :: (forall (n :: HyperType). HWitness (Ann a) n -> (p # n) -> q # n) -> (Ann a # p) -> Ann a # q Source #

HFoldable a => HFoldable (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hfoldMap :: Monoid a0 => (forall (n :: HyperType). HWitness (Ann a) n -> (p # n) -> a0) -> (Ann a # p) -> a0 Source #

HTraversable a => HTraversable (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (Ann a # ContainedH f p) -> f (Ann a # p) Source #

HApply a => HApply (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (Ann a # p) -> (Ann a # q) -> Ann a # (p :*: q) Source #

RTraversable a => RTraversable (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

RNodes a => RNodes (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

recursiveHNodes :: proxy (Ann a) -> Dict (HNodesConstraint (Ann a) RNodes) Source #

(HContext a, HFunctor a) => HContext (Ann a) Source # 
Instance details

Defined in Hyper.Class.Context

Methods

hcontext :: forall (p :: HyperType). (Ann a # p) -> Ann a # (HFunc p (Const (Ann a # p)) :*: p) Source #

Constraints (Ann a h) Eq => Eq (Ann a h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

(==) :: Ann a h -> Ann a h -> Bool #

(/=) :: Ann a h -> Ann a h -> Bool #

Constraints (Ann a h) Ord => Ord (Ann a h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

compare :: Ann a h -> Ann a h -> Ordering #

(<) :: Ann a h -> Ann a h -> Bool #

(<=) :: Ann a h -> Ann a h -> Bool #

(>) :: Ann a h -> Ann a h -> Bool #

(>=) :: Ann a h -> Ann a h -> Bool #

max :: Ann a h -> Ann a h -> Ann a h #

min :: Ann a h -> Ann a h -> Ann a h #

Constraints (Ann a h) Show => Show (Ann a h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

showsPrec :: Int -> Ann a h -> ShowS #

show :: Ann a h -> String #

showList :: [Ann a h] -> ShowS #

Generic (Ann a h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Associated Types

type Rep (Ann a h) :: Type -> Type #

Methods

from :: Ann a h -> Rep (Ann a h) x #

to :: Rep (Ann a h) x -> Ann a h #

Constraints (Ann a h) Binary => Binary (Ann a h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

put :: Ann a h -> Put #

get :: Get (Ann a h) #

putList :: [Ann a h] -> Put #

Constraints (Ann a h) NFData => NFData (Ann a h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

rnf :: Ann a h -> () #

RNodes h => HNodes (HFlip Ann h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Associated Types

type HNodesConstraint (HFlip Ann h) c Source #

type HWitnessType (HFlip Ann h) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (HFlip Ann h) c => HWitness (HFlip Ann h) n -> Proxy c -> (c n => r) -> r Source #

Recursively HFunctor h => HFunctor (HFlip Ann h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hmap :: (forall (n :: HyperType). HWitness (HFlip Ann h) n -> (p # n) -> q # n) -> (HFlip Ann h # p) -> HFlip Ann h # q Source #

Recursively HFoldable h => HFoldable (HFlip Ann h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (HFlip Ann h) n -> (p # n) -> a) -> (HFlip Ann h # p) -> a Source #

RTraversable h => HTraversable (HFlip Ann h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (HFlip Ann h # ContainedH f p) -> f (HFlip Ann h # p) Source #

(Recursively HContext h, Recursively HFunctor h) => HContext (HFlip Ann h) Source # 
Instance details

Defined in Hyper.Class.Context

Methods

hcontext :: forall (p :: HyperType). (HFlip Ann h # p) -> HFlip Ann h # (HFunc p (Const (HFlip Ann h # p)) :*: p) Source #

type HWitnessType (Ann a) Source # 
Instance details

Defined in Hyper.Combinator.Ann

type HWitnessType (Ann a)
type HNodesConstraint (Ann a) constraint Source # 
Instance details

Defined in Hyper.Combinator.Ann

type HNodesConstraint (Ann a) constraint = (HNodesConstraint a constraint, constraint (Ann a))
type Rep (Ann a h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

type Rep (Ann a h) = D1 ('MetaData "Ann" "Hyper.Combinator.Ann" "hypertypes-0.1.0.2-GDiSRF0EwgQ6Mkx3yytlTL" 'False) (C1 ('MetaCons "Ann" 'PrefixI 'True) (S1 ('MetaSel ('Just "_hAnn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (a h)) :*: S1 ('MetaSel ('Just "_hVal") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (h :# Ann a))))
type HWitnessType (HFlip Ann h) Source # 
Instance details

Defined in Hyper.Combinator.Ann

type HNodesConstraint (HFlip Ann h) c Source # 
Instance details

Defined in Hyper.Combinator.Ann

type HNodesConstraint (HFlip Ann h) c = (Recursive c, c h)

hAnn :: forall a h. Lens' (Ann a h) (a h) Source #

hVal :: forall a h. Lens' (Ann a h) ((:#) h (Ann a)) Source #

type Annotated a = Ann (Const a) Source #

annValue :: Lens (Annotated a # h0) (Annotated a # h1) (h0 # Annotated a) (h1 # Annotated a) Source #

Polymorphic lens to an Annotated value

newtype HCompose a b h Source #

Compose two HyperTypes as an external and internal layer

Constructors

HCompose 

Fields

Instances

Instances details
(HNodes h0, HNodes h1, c (HCompose h0 h1), HNodesConstraint h0 (HComposeConstraint0 RNodes h1), HNodesConstraint h0 (HComposeConstraint0 (Recursively c) h1)) => Recursively c (HCompose h0 h1) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Methods

recursively :: proxy (c (HCompose h0 h1)) -> Dict (c (HCompose h0 h1), HNodesConstraint (HCompose h0 h1) (Recursively c)) Source #

(Infer m t, HPointed (InferOf t), HTraversable (InferOf t), HNodesConstraint t (HComposeConstraint1 (Infer m) Prune)) => Infer m (HCompose Prune t) Source # 
Instance details

Defined in Hyper.Type.Prune

(Blame m t, HNodesConstraint t (HComposeConstraint1 (Infer m) Prune), HNodesConstraint t (HComposeConstraint1 (Blame m) Prune), HNodesConstraint t (HComposeConstraint1 RNodes Prune), HNodesConstraint t (HComposeConstraint1 (Recursively HFunctor) Prune), HNodesConstraint t (HComposeConstraint1 (Recursively HFoldable) Prune), HNodesConstraint t (HComposeConstraint1 RTraversable Prune)) => Blame m (HCompose Prune t) Source # 
Instance details

Defined in Hyper.Type.Prune

(HNodes a, HNodes b) => HNodes (HCompose a b) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Associated Types

type HNodesConstraint (HCompose a b) c Source #

type HWitnessType (HCompose a b) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (HCompose a b) c => HWitness (HCompose a b) n -> Proxy c -> (c n => r) -> r Source #

(HNodes a, HPointed a, HPointed b) => HPointed (HCompose a b) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Methods

hpure :: (forall (n :: HyperType). HWitness (HCompose a b) n -> p # n) -> HCompose a b # p Source #

(HFunctor a, HFunctor b) => HFunctor (HCompose a b) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Methods

hmap :: (forall (n :: HyperType). HWitness (HCompose a b) n -> (p # n) -> q # n) -> (HCompose a b # p) -> HCompose a b # q Source #

(HFoldable a, HFoldable b) => HFoldable (HCompose a b) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Methods

hfoldMap :: Monoid a0 => (forall (n :: HyperType). HWitness (HCompose a b) n -> (p # n) -> a0) -> (HCompose a b # p) -> a0 Source #

(HTraversable a, HTraversable b) => HTraversable (HCompose a b) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (HCompose a b # ContainedH f p) -> f (HCompose a b # p) Source #

(HApply a, HApply b) => HApply (HCompose a b) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (HCompose a b # p) -> (HCompose a b # q) -> HCompose a b # (p :*: q) Source #

(ZipMatch h0, ZipMatch h1, HTraversable h0, HFunctor h1) => ZipMatch (HCompose h0 h1) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Methods

zipMatch :: forall (p :: HyperType) (q :: HyperType). (HCompose h0 h1 # p) -> (HCompose h0 h1 # q) -> Maybe (HCompose h0 h1 # (p :*: q)) Source #

(HTraversable a, HTraversable b, HNodesConstraint a (HComposeConstraint0 RNodes b), HNodesConstraint a (HComposeConstraint0 (Recursively HFunctor) b), HNodesConstraint a (HComposeConstraint0 (Recursively HFoldable) b), HNodesConstraint a (HComposeConstraint0 RTraversable b)) => RTraversable (HCompose a b) Source # 
Instance details

Defined in Hyper.Combinator.Compose

(HNodes a, HNodes b, HNodesConstraint a (HComposeConstraint0 RNodes b)) => RNodes (HCompose a b) Source # 
Instance details

Defined in Hyper.Combinator.Compose

(HFunctor h0, HContext h0, HFunctor h1, HContext h1) => HContext (HCompose h0 h1) Source # 
Instance details

Defined in Hyper.Class.Context

Methods

hcontext :: forall (p :: HyperType). (HCompose h0 h1 # p) -> HCompose h0 h1 # (HFunc p (Const (HCompose h0 h1 # p)) :*: p) Source #

Constraints (HCompose a b h) Eq => Eq (HCompose a b h) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Methods

(==) :: HCompose a b h -> HCompose a b h -> Bool #

(/=) :: HCompose a b h -> HCompose a b h -> Bool #

Constraints (HCompose a b h) Ord => Ord (HCompose a b h) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Methods

compare :: HCompose a b h -> HCompose a b h -> Ordering #

(<) :: HCompose a b h -> HCompose a b h -> Bool #

(<=) :: HCompose a b h -> HCompose a b h -> Bool #

(>) :: HCompose a b h -> HCompose a b h -> Bool #

(>=) :: HCompose a b h -> HCompose a b h -> Bool #

max :: HCompose a b h -> HCompose a b h -> HCompose a b h #

min :: HCompose a b h -> HCompose a b h -> HCompose a b h #

Constraints (HCompose a b h) Show => Show (HCompose a b h) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Methods

showsPrec :: Int -> HCompose a b h -> ShowS #

show :: HCompose a b h -> String #

showList :: [HCompose a b h] -> ShowS #

Generic (HCompose a b h) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Associated Types

type Rep (HCompose a b h) :: Type -> Type #

Methods

from :: HCompose a b h -> Rep (HCompose a b h) x #

to :: Rep (HCompose a b h) x -> HCompose a b h #

Constraints (HCompose a b h) Binary => Binary (HCompose a b h) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Methods

put :: HCompose a b h -> Put #

get :: Get (HCompose a b h) #

putList :: [HCompose a b h] -> Put #

Constraints (HCompose a b h) NFData => NFData (HCompose a b h) Source # 
Instance details

Defined in Hyper.Combinator.Compose

Methods

rnf :: HCompose a b h -> () #

type HWitnessType (HCompose a b) Source # 
Instance details

Defined in Hyper.Combinator.Compose

type InferOf (HCompose Prune t) Source # 
Instance details

Defined in Hyper.Type.Prune

type HNodesConstraint (HCompose a b) c Source # 
Instance details

Defined in Hyper.Combinator.Compose

type Rep (HCompose a b h) Source # 
Instance details

Defined in Hyper.Combinator.Compose

type Rep (HCompose a b h) = D1 ('MetaData "HCompose" "Hyper.Combinator.Compose" "hypertypes-0.1.0.2-GDiSRF0EwgQ6Mkx3yytlTL" 'True) (C1 ('MetaCons "HCompose" 'PrefixI 'True) (S1 ('MetaSel ('Just "getHCompose") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (a # HCompose b (GetHyperType h)))))

_HCompose :: Iso (HCompose a0 b0 # h0) (HCompose a1 b1 # h1) (a0 # HCompose b0 h0) (a1 # HCompose b1 h1) Source #

An Iso for the HCompose newtype

hcomposed :: (Profunctor p, Functor f) => Optic p f (a0 # HCompose b0 c0) (a1 # HCompose b1 c1) (HCompose a2 b2 # c2) (HCompose a3 b3 # c3) -> Optic p f (HCompose a0 b0 # c0) (HCompose a1 b1 # c1) (a2 # HCompose b2 c2) (a3 # HCompose b3 c3) Source #

newtype ANode c h Source #

ANode c is a HyperType with a single child node of type c

Constructors

MkANode (h :# c) 

Instances

Instances details
(c (ANode n), Recursively c n) => Recursively c (ANode n) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

recursively :: proxy (c (ANode n)) -> Dict (c (ANode n), HNodesConstraint (ANode n) (Recursively c)) Source #

HNodes (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Associated Types

type HNodesConstraint (ANode c) c Source #

type HWitnessType (ANode c) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c0 (n :: HyperType) r. HNodesConstraint (ANode c) c0 => HWitness (ANode c) n -> Proxy c0 -> (c0 n => r) -> r Source #

HPointed (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

hpure :: (forall (n :: HyperType). HWitness (ANode c) n -> p # n) -> ANode c # p Source #

HFunctor (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

hmap :: (forall (n :: HyperType). HWitness (ANode c) n -> (p # n) -> q # n) -> (ANode c # p) -> ANode c # q Source #

HFoldable (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (ANode c) n -> (p # n) -> a) -> (ANode c # p) -> a Source #

HTraversable (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (ANode c # ContainedH f p) -> f (ANode c # p) Source #

HApply (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (ANode c # p) -> (ANode c # q) -> ANode c # (p :*: q) Source #

RTraversable n => RTraversable (ANode n) Source # 
Instance details

Defined in Hyper.Combinator.ANode

RNodes n => RNodes (ANode n) Source # 
Instance details

Defined in Hyper.Combinator.ANode

HNodeLens (ANode c) c Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

hNodeLens :: forall (h :: HyperType). Lens' (ANode c # h) (h # c) Source #

HMorph (ANode a) (ANode b) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Associated Types

type MorphConstraint (ANode a) (ANode b) c Source #

data MorphWitness (ANode a) (ANode b) :: HyperType -> HyperType -> Type Source #

Methods

morphMap :: (forall (a0 :: HyperType) (b0 :: HyperType). MorphWitness (ANode a) (ANode b) a0 b0 -> (p # a0) -> q # b0) -> (ANode a # p) -> ANode b # q Source #

morphLiftConstraint :: forall c (a0 :: HyperType) (b0 :: HyperType) r. MorphConstraint (ANode a) (ANode b) c => MorphWitness (ANode a) (ANode b) a0 b0 -> Proxy c -> (c a0 b0 => r) -> r Source #

Constraints (ANode c h) Eq => Eq (ANode c h) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

(==) :: ANode c h -> ANode c h -> Bool #

(/=) :: ANode c h -> ANode c h -> Bool #

Constraints (ANode c h) Ord => Ord (ANode c h) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

compare :: ANode c h -> ANode c h -> Ordering #

(<) :: ANode c h -> ANode c h -> Bool #

(<=) :: ANode c h -> ANode c h -> Bool #

(>) :: ANode c h -> ANode c h -> Bool #

(>=) :: ANode c h -> ANode c h -> Bool #

max :: ANode c h -> ANode c h -> ANode c h #

min :: ANode c h -> ANode c h -> ANode c h #

Constraints (ANode c h) Show => Show (ANode c h) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

showsPrec :: Int -> ANode c h -> ShowS #

show :: ANode c h -> String #

showList :: [ANode c h] -> ShowS #

Generic (ANode c h) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Associated Types

type Rep (ANode c h) :: Type -> Type #

Methods

from :: ANode c h -> Rep (ANode c h) x #

to :: Rep (ANode c h) x -> ANode c h #

Constraints (ANode c h) Binary => Binary (ANode c h) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

put :: ANode c h -> Put #

get :: Get (ANode c h) #

putList :: [ANode c h] -> Put #

Constraints (ANode c h) NFData => NFData (ANode c h) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

rnf :: ANode c h -> () #

type HWitnessType (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

type HNodesConstraint (ANode c) constraint Source # 
Instance details

Defined in Hyper.Combinator.ANode

type HNodesConstraint (ANode c) constraint = constraint c
data MorphWitness (ANode a) (ANode b) _ _ Source # 
Instance details

Defined in Hyper.Combinator.ANode

data MorphWitness (ANode a) (ANode b) _ _ where
type MorphConstraint (ANode a) (ANode b) c Source # 
Instance details

Defined in Hyper.Combinator.ANode

type MorphConstraint (ANode a) (ANode b) c = c a b
type Rep (ANode c h) Source # 
Instance details

Defined in Hyper.Combinator.ANode

type Rep (ANode c h) = D1 ('MetaData "ANode" "Hyper.Combinator.ANode" "hypertypes-0.1.0.2-GDiSRF0EwgQ6Mkx3yytlTL" 'True) (C1 ('MetaCons "MkANode" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (h :# c))))

_ANode :: Iso (ANode c0 # k0) (ANode c1 # k1) (k0 # c0) (k1 # c1) Source #

An Iso from ANode its child node.

Using _ANode rather than the MkANode data constructor is recommended, because it helps the type inference know that ANode c is parameterized with a HyperType.

data W_ANode (c :: HyperType) node where Source #

Constructors

W_ANode_c :: W_ANode c c 

class Show (HPlain h) => HasHPlain h where Source #

A class for a plain form of a Pure # h

Associated Types

data HPlain h Source #

Plain form data type

Methods

hPlain :: Iso' (HPlain h) (Pure # h) Source #

An Iso between the plain form and HyperType form

makeHasHPlain :: [Name] -> DecsQ Source #

Generate a HasHPlain instance