Datalog.String
Pseudo-heterogenous lists of strings.
The type 'a String.hlist is equivalent to the type string list, but with extra type information, which we leverage to provide the program API.
'a String.hlist
string list
program
type _ hlist =
| [] : nil hlist
| :: : string * 'b hlist -> ('a -> 'b) hlist