TriangleFacts msabdeljalil 1

Attempt 1
I don't think this parses, based on that trailing comma on #49. Which is a good example of why this is still very very complicated. It's not the point of this exercise, but I'd probably bust it on production code.