OverloadedRecordFields magic constraint solving for HasField

Authored by adamgundry on Dec 22 2015, 11:44 AM.

Description

OverloadedRecordFields magic constraint solving for HasField

Summary:
This makes a start at implementing part 3 of the OverloadedRecordFields
trilogy (see https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields/MagicClasses).
Only HasField has been done so far; updates need a bit more thought about
the design. Moreover, I've gone for the functional dependency version
as it seems simplest.

Rather than adding another special-purpose constructor to EvTerm, I made
it possible to embed arbitrary HsExprs in evidence. This should be useful
for typechecker plugins. But I can specialise it if needed.

Test Plan: some new tests added, more needed

Reviewers: bgamari, austin, simonpj, hvr

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D1687

Details

Committed
adamgundryDec 22 2015, 11:54 AM
Differential Revision
D1687: OverloadedRecordFields magic constraint solving for HasField
This commit no longer exists in the repository. It may have been part of a branch which was deleted.This commit has been deleted in the repository: it is no longer reachable from any branch, tag, or ref.

Commit No Longer Exists

This commit no longer exists in the repository.