My struggle for understanding Dependently Typed Metaprogramming (http://www.cl.cam.ac.uk/~ok259/agda-course-13/)