Kudos to you for realizing that character strings can behave as Lists (the high level datatype) without being implemented as linked lists (a usually poor implementation strategy on modern systems). I'm assuming that your "difference lists" are bounding pointers into an array slice, a natural Rust strategy. I'm wondering where else in Scryer-Prolog you could implement Lists this way. Maybe everywhere? Please corrode your Prolog implementation as much as possible, the language will thank you!
Kudos to you for realizing that character strings can behave as Lists (the high level datatype) without being implemented as linked lists (a usually poor implementation strategy on modern systems). I'm assuming that your "difference lists" are bounding pointers into an array slice, a natural Rust strategy. I'm wondering where else in Scryer-Prolog you could implement Lists this way. Maybe everywhere? Please corrode your Prolog implementation as much as possible, the language will thank you!