More patterns.
Use vectors instead of lists.
Fix bug in cross product definition.
This way is probably clearer.