Skip to content

["Bug"] Free foldMap is not stack safe #635

Open
@ferranpujolcamins

Description

@ferranpujolcamins

Description

The foldMap is stack safe test found in Arrow's Free is not present in Bow. Furthermore, the test fails if added.

I believe this is caused because the new Free implementation lacks the special flatMap case found in the old one.
A possible solution is to try to generalize the trampoline implementation of #636 as shown in the paper linked below. Then we can make Trampoline<A> = Free<ForFunction0, A> like in Arrow.

Expected outcome

foldMap is stack safe

Observed outcome

foldMap is not stack safe

Code to reproduce the Bug

saferFree branch in my fork.

Bow modules, version, platform

Bow module, master branch.

Tooling

  • Xcode version:
  • Installation method: Carthage / Cocoapods / Swift Package Manager

Other

Some explanation of the issue and possible solution can be found in this paper

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions