some software engineering notes in comments
simple representation with ocaml lists, mostly coded