Working on an implementation of match.

Currently considering if there should be two types of match variables one for
the types that map to an expression, and another for the variables within that
expression.