• Eric Myhre's avatar
    Yank TypedNode interface into schema package. · a2ea4706
    Eric Myhre authored
    Previously it was in the 'impl/typed' package, next to the
    runtime-wrapper implementation of the interface.  This was strange.
    
    Not only should those two things be separated just on principle,
    this was also causing more import cycle problems down the road:
    for example, the traversal package needs to consider the *interface*
    for a schema-typed node in order to gracefully handle some features...
    and if this also brings in a *concrete* dependency on the
    runtime-wrapper implementation of typed nodes, not only is that
    incorrect bloat, it becomes a show stopper because (currently, at
    least) that implementation also in turn transitively imports the
    ipldfree package for some of its scalars.  Ouchouch.
    
    So.  Now the interface lives over in the 'schema' package, with all
    the other interfaces for that feature set.  Where it probably always
    should have been.
    
    ('typed.Maybe' also became known as 'schema.Maybe', which... does not
    roll off the tongue as nicely.  But this is a minor concern and we
    might reconsider the naming and appearance of that thing later anyway.)
    a2ea4706
must.go 2.12 KB