Skip to content

Conversation

@gnumonik
Copy link
Collaborator

Replaces the zipWithM unify machinery in app with "structural" (non-BBF-based) machinery for determining the concretification of functions being applied. Adds a few tests to verify the behavior.

@gnumonik gnumonik requested a review from kozross November 20, 2025 03:45
Comment on lines +760 to +766
-- *** IMPORTANT ***
-- The *only* purpose of explicit type application arguments is to instantiate a tyvar in the result which is
-- not determined by any argument. These variables are instantiated after every other argument has been concretified.
--
-- For example, if you have a function
-- `f :: forall a b c. (a -> b) -> (b -> a) -> b -> Either a c`
-- Then you will need to supply *ONE* explicit type application to concretify `c`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few Haddock formatting things:

  • Headings should be = Heading. You can see examples of this with Notes in various bits of Haddocks in this module.
  • Backticks won't render as code: you want @.

Easiest way to check your output is to run cabal haddock, then open the generated index.html in your browser.

Comment on lines +420 to +422
-- NOTE/REVIEW: I am not sure if we should fix this up here. I think we shouldn't, b/c we need the unifiables to
-- conform with the what the instantiations expect from the explicit type applications, but I
-- could very easily be wrong.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this still a problem? I think we discussed this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants