A tree folder for a type of kind * → *, where the type parameter is inferred. The type lambda F will be used to build the actual folder type.
* → *
F
For example consider the function MyFolder which happens to be a tree folder with a carrier type of Option<A>:
MyFolder
Option<A>
type MyFolder = <A>(treeF: TreeF<Option<A>>) => Option<A> Copy
type MyFolder = <A>(treeF: TreeF<Option<A>>) => Option<A>
Its type can be written using TreeAlgebraK without mentioning the free parameter A:
TreeAlgebraK
A
type MyFolder = TreeFolderK<OptionTypeLambda> Copy
type MyFolder = TreeFolderK<OptionTypeLambda>
A tree folder for a type of kind
* → *, where the type parameter is inferred. The type lambdaFwill be used to build the actual folder type.For example consider the function
MyFolderwhich happens to be a tree folder with a carrier type ofOption<A>:Its type can be written using
TreeAlgebraKwithout mentioning the free parameterA: