Language direction and open questions¶
hql favors typed functional expressions and composition. These sketches illustrate intent only; neither is accepted by the bootstrap parser:
alice : Doc = [[alice]]
knowledge
| graph
[[..]] is a doc reference, and [[..]] -> [[..]] {..} the link operator over
two of them; card-ness is a separate checked narrowing — see link-op.
Functions, .hql module
imports, value construction, transformations, constraint validation, and typed
results belong to the intended scope. hmd-integration describes how partial
header schemas could contribute structural/type information.
Recorded direction¶
The example corpus records current design inputs. Bare typed/inferred bindings are preferred; let is an alternative. A program returns its last expression; rendering and explicit output are separate. Cells close over explicit card environments, with isolated local bindings. See program values.
Significant relationships are relation cards. cards | typed RelationCard | graph
is a core example. Knowledge includes evidence, provenance and conflicting
claims; Graph is one projection and HmdGraph is a presentation value. See the
knowledge model.
Deliberately unresolved¶
- Function syntax, application, binding, pipeline desugaring, and precedence.
- Type inference, structural versus nominal records, schema checking, optional and unknown header fields, polymorphism, and numeric representation.
- Card identity, namespace context, unresolved/ambiguous references, graph value semantics, and the concrete host adapter interface.
- Module loading, effects and resource limits, transformation application, constraints/proofs, HMD-producing expressions, diagram-producing expressions, and richer computational cells.
- Specialized HMD fences such as
hql#query,hql#eval, andhql#declare, including effect policy, dependency order, and exact presentation types. Lexical capture and value/context separation are recorded above.
Bootstrap i64, f64, +, and the 256-literal bound prove the
bootstrap requirements; they do not settle
these questions. Float is now a working
bootstrap type, but decimal semantics, rounding and a numeric tower are not. There is no theorem prover, graph implementation,
HMD renderer, module system, or large standard library in this repository.
Type vocabulary to leave room for¶
Future foundations include Date/DateTime, Option