ext.rb could be replaced with types.rb and do stuff like class Lasp::List < Array to get the same functionality and safely override #call etc. They could also give proper LaspErrors if #chars or #to_i is called on a list for example
Lasp::List < Array
Lasp::Dict < Hash