For some purposes, we allow dspecs that do not name a global definition, but a local function. These are of the form
(subfunction
name
parent
)
where
parent
is another dspec (possibly even a
subfunction
dspec).
name
is a symbol, a list, or a number, but it is not used for anything within the dspec system. A
subfunction
dspec can be canonicalized and prettified, and passed as an argument to dspec-definition-locations (which will find where
parent
is defined).
Additionally pseudo-dspecs like this are allowed for top-level forms:
(top-level-form (
location
<#>))
location
is a basic location and <#> identifies the top-level form within that location. These are used as parent dspecs in
subfunction
dspecs and
:inside
locations. These dspecs can be canonicalized and prettified, and can be returned as dspecs from the location finders.