# Pastebin m22K8ThX MacBook-Pro-de-Fernando:BestTree fernando$ cat Tree.pm6 use Red; class X::Tree::ExistsInTheSameArea is Exception { has Rat $.longitude; has Rat $.latitude; method message { "A tree on ($!longitude, $!latitude) was already suggested" } } model Tree { has UInt $!id is id; has Rat $.latitude is column; has Rat $.longitude is column; has Rat $.height is column; has Str $.description is column; ::?CLASS.^add-unique-constraint: { .latitude, .longitude }; method all-trees { self.^all.sort: -*.height } method find-tree(Rat $longitude, Rat $latitude) { self.^find: :$longitude, :$latitude } method suggest-tree(Rat $longitude, Rat $latitude, Rat $height, Str $description) { CATCH { die X::Tree::ExistsInTheSameArea.new: :$longitude, :$latitude } self.^create: :$longitude, :$latitude, :$height, :$description } } MacBook-Pro-de-Fernando:BestTree fernando$ perl6 -I../Red2/lib/ -MRed -I. -MTree -e ' my $*RED-DB = database "SQLite"; Tree.^create-table; Tree.suggest-tree: 1.1, 2.2, 3.3, "bla"; Tree.suggest-tree: 1.1, 2.2, 3.4, "ble"; ' A tree on (1.1, 2.2) was already suggested in method suggest-tree at -e line 29 in block at -e line 6 MacBook-Pro-de-Fernando:BestTree fernando$