Replying to
@maruey @ListenBrainz <3 Pongo <3
Computer Science researcher (Computational Systems Biology / Bioinformatics) at Inria.
I do many things, but not very well (cuban salsa dancing, Ukulele, juggling, Go, etc.), thanks K. Vonnegut!
Interested in various things but here mostly for science, politics and anything software-related.
@gvwilson@mastodon.social Haven't read your above article, but I'd say that in languages, like Prolog, which is usually not typed, and has both a notion of failure and a separate notion of error/exception, when you add a type system it's often descriptive rather than prescriptive, which seems related to the question you're asking…
The question being how would you want to type:
append([], L, L).
append([H|T], L, [H|M]) :- append(T, L, M).
since the first clause would succeed with any L.