Instances28Eval, …
type Eval (DedupAlg 'NilF) = '[]Defined in fcf-containers-0.8.2 · Fcf.Alg.Listtype Eval (DedupAlg ('ConsF '(a2, as) '(_fxs, past))) = Eval (If (Eval (TyEq (Eval (Elem a2 past)) 'True)) (Pure past) (Pure (a2 ': as)))Defined in fcf-containers-0.8.2 · Fcf.Alg.Listtype Eval (EvensAlg 'NilF) = '[]Defined in fcf-containers-0.8.2 · Fcf.Alg.Listtype Eval (EvensAlg ('ConsF _1 rst)) = Eval (EvensStrip =<< Strip rst)Defined in fcf-containers-0.8.2 · Fcf.Alg.Listtype Eval (EvensStrip 'NilF) = '[]Defined in fcf-containers-0.8.2 · Fcf.Alg.Listtype Eval (EvensStrip ('ConsF x y)) = x ': Eval (Attr y)Defined in fcf-containers-0.8.2 · Fcf.Alg.Listtype Eval (ListToFix '[]) = 'Fix 'NilFDefined in fcf-containers-0.8.2 · Fcf.Alg.Listtype Eval (ListToFix (a2 ': as)) = 'Fix ('ConsF a2 (Eval (ListToFix as)))Defined in fcf-containers-0.8.2 · Fcf.Alg.Listtype Eval (ListToParaFix '[]) = 'Fix 'NilFDefined in fcf-containers-0.8.2 · Fcf.Alg.Listtype Eval (ListToParaFix (a2 ': as)) = 'Fix ('ConsF '(a2, as) (Eval (ListToParaFix as)))Defined in fcf-containers-0.8.2 · Fcf.Alg.Listtype Eval (SlidingAlg _1 'NilF) = '[]Defined in fcf-containers-0.8.2 · Fcf.Alg.Listtype Eval (SlidingAlg n ('ConsF '(a2, as) '(_fxs, past))) = Eval (Take n (a2 ': as)) ': pastDefined in fcf-containers-0.8.2 · Fcf.Alg.Listtype Eval (Ana coalg a2) = 'Fix (Eval (Map (Ana coalg) (Eval (coalg a2))))Defined in fcf-containers-0.8.2 · Fcf.Alg.Morphismtype Eval (AnnConstr fxp) = Eval (Pure ('Fix ('AnnF fxp)))Defined in fcf-containers-0.8.2 · Fcf.Alg.Morphismtype Eval (Attr ('Fix ('AnnF '(_1, a2)))) = a2Defined in fcf-containers-0.8.2 · Fcf.Alg.Morphismtype Eval (Fanout ralg ('Fix f2)) = '('Fix f2, Eval (Para ralg ('Fix f2)))Defined in fcf-containers-0.8.2 · Fcf.Alg.Morphismtype Eval (HistoAlg alg faf) = Eval (AnnConstr '(faf, Eval (alg faf)))Defined in fcf-containers-0.8.2 · Fcf.Alg.Morphismtype Eval (Strip ('Fix ('AnnF '(x, _1)))) = xDefined in fcf-containers-0.8.2 · Fcf.Alg.Morphismtype Eval (SynthAlg alg faf) = Eval (AnnConstr '(faf, Eval (alg =<< Map Attr faf)))Defined in fcf-containers-0.8.2 · Fcf.Alg.Morphismtype Eval (Synthesize f2 fx) = Eval (Cata (SynthAlg f2) fx)Defined in fcf-containers-0.8.2 · Fcf.Alg.Morphismtype Eval (FibAlgebra 'Zero) =Defined in fcf-containers-0.8.2 · Fcf.Alg.Tree0
type Eval (FibAlgebra ('Succ ('Fix ('AnnF '('Succ ('Fix ('AnnF '(_1, n))), m))))) = Eval (n + m)Defined in fcf-containers-0.8.2 · Fcf.Alg.Treetype Eval (FibAlgebra ('Succ ('Fix ('AnnF '('Zero, _1))))) =Defined in fcf-containers-0.8.2 · Fcf.Alg.Tree1
type Eval (NatToFix n) = Eval (If (Eval (n <Defined in fcf-containers-0.8.2 · Fcf.Alg.Tree1
)) (Pure ('Fix 'Zero)) (RecNTF =<< (n -1
)))type Eval (RecNTF n) = 'Fix ('Succ (Eval (NatToFix n)))Defined in fcf-containers-0.8.2 · Fcf.Alg.Treetype Eval (Sizes fx) = Eval (Synthesize ((+)Defined in fcf-containers-0.8.2 · Fcf.Alg.Tree1
<=< FSum) fx)Sizes example from Recursion Schemes by example, Tim Williams. This annotes each node with the size of its subtree.
Example
:kind! Eval (Sizes =<< Ana BuildNodeCoA 1)Eval (Sizes =<< Ana BuildNodeCoA 1) :: Fix (AnnF (TreeF TL.Natural) TL.Natural) = 'Fix ('AnnF '( 'NodeF 1 '[ 'Fix ('AnnF '( 'NodeF 2 '[ 'Fix ('AnnF '( 'NodeF 4 '[], 1)), 'Fix ('AnnF '( 'NodeF 5 '[], 1))], 3)), 'Fix ('AnnF '( 'NodeF 3 '[ 'Fix ('AnnF '( 'NodeF 6 '[], 1)), 'Fix ('AnnF '( 'NodeF 7 '[], 1))], 3))], 7))
type Eval (TreeToFix ('Node a2 '[])) = 'Fix ('NodeF a2 '[])Defined in fcf-containers-0.8.2 · Fcf.Alg.Treetype Eval (TreeToFix ('Node a2 (b ': bs))) = 'Fix ('NodeF a2 (Eval (Map TreeToFix (b ': bs))))Defined in fcf-containers-0.8.2 · Fcf.Alg.Tree