# Todos
[x] Add more tests for node signature subtyping
[ ] Extract Union, Intersection, Conditional into own structs
[x] Separate logic from type_expr.rs into more files
[ ] Make a union function
[x] Rework file structure
[ ] Add more tests for keyof
[ ] Add more tests for index
[x] Add better result to supertype_of
[x] Rename concrete type to type
[x] improve build_conditional_distributions to return the first plus all remaining in a vec
[x] Investigate the ts utility types
[ ] Extract parameters from signature
[x] Document tags
[ ] Test tags
[ ] Test inferring from and to conditionals
[ ] Test cyclic graphs
[ ] Enable traverse return early?

# Proptest
[ ] Add proptest that a random type is supertype of itself
[ ] Proptest normalization function.
[ ] Add proptests to dedoup scope portals. (same semantics as non dedouped (supertyping))
[x] Proptest parser.
[x] Proptest validator never crashes.