Open martijnbastiaan opened 4 years ago
Another option is to not make KnownDomain dom
not part of the HiddenClock/Reset/Enable
constraint synonym.
With regards to “just inlining the dictionaries” I take is you mean that as a preprocessing step for synthesis boundaries/entry points; not all binders that have a type-class type.
With regards to “just inlining the dictionaries” I take is you mean that as a preprocessing step for synthesis boundaries/entry points; not all binders that have a type-class type.
Yeah, that was a poorly phrased way of saying we could conjure up the term (in fact, we should already have it somewhere in a ClashEnv
y type).
not all binders that have a type-class type
Not sure I understand, could you elaborate?
We could write a transformation that’s part of the normalization process that for every variable reference:
x :: TC
replaces x
with a fresh dictionary. But I assumed that’s not what you meant.
Another option is to not make
KnownDomain dom
not part of theHiddenClock/Reset/Enable
constraint synonym.
Ah but I recently wrote some documentation recommending people construct such tuples themselves...
But I assumed that’s not what you meant.
Gotcha. I meant synthesis boundaries, yes. The rest should be solved by constant propagation.
Consider
topEntity's core looks like:
In this core the dictionary of
KnownDomain
is unavailable. This leaves Clash unable to solve the case insubFun
.We should lookup dictionaries of monomorphic constraints and inline them.