Skip to content

Products have Problematic Strictness #68

@BebeSparkelSparkel

Description

@BebeSparkelSparkel

I tried using gap for the product explained in your paper Composing bidirectional programs monadically but the generic function has strictness in the parameters which caused the biparser drop bp = try bp *> drop bp <!> pure () to infinitely loop.

This is also problematic in base Data.Functor.Product.Product and I have detailed the problem more thoroughly in

haskell/core-libraries-committee#268

or

https://gitlab.haskell.org/ghc/ghc/-/issues/24898

This is probably a problem in more than just gap because I found with Product it to be a problem with

  • Applicative
  • Alternative
  • MonadPlus
  • MonadZip
  • Semigroup - impossible to create infinite data structures

so it would be worth checking those generic functions as well.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingupstreamThe cause of the problem is elsewhere

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions