Meta

dev.constructive.eo.schemes.zoo.Meta
See theMeta companion class
object Meta

Attributes

Companion
class
Source
Meta.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Meta.type

Members list

Value members

Concrete methods

def apply[F[_], S, A, G[_], T](alg: F[A] => A, coalg: A => G[A])(using F: Traverse[F], P: Project[F, S], G: Traverse[G], E: Embed[G, T]): Meta[S, A, T]

The fold-then-unfold read S => T: fold the F-recursive S to a neck A (node-blind alg), then unfold A into a fresh G-recursive T (coalg). Does not fuse — it keeps both Basises (Project[F, S] to fold, Embed[G, T] to build); where hylo needs only Traverse, meta cannot drop either. Stack-safe (two Machines.foldLayered passes).

The fold-then-unfold read S => T: fold the F-recursive S to a neck A (node-blind alg), then unfold A into a fresh G-recursive T (coalg). Does not fuse — it keeps both Basises (Project[F, S] to fold, Embed[G, T] to build); where hylo needs only Traverse, meta cannot drop either. Stack-safe (two Machines.foldLayered passes).

Attributes

Source
Meta.scala