Template Types
TODO
	Template struct
struct Pair(type Left, type Right) {
    left:   Left
    right:  Right
}
fn fst(pair: Pair(<Left>, _)): Left =
    pair.left
fn snd(pair: Pair(_, <Right>)): Right =
    pair.right
fn sum(pair: Pair(<T>, T))
    case (T.is::arithmetic): T =
        pair.fst + pair.snd
TODO