Encoding datatypes in term of other datatypes and generalising their properties | Hacker News Reader