Dynamic type checking
Values tagged with types
Operations generate type errors at run time
(+ 1 2) 3
(+ 1 2.0) 3.0
(+ 1 "eels") Error in +: "eels" is not a number.