Moduły

Moduł jest jednocześnie klasą, przestrzenią nazw i statycznym modułem. Moduł określa typ zmiennej. Każda zmienna jest związana z jakimś modułem (wbudowanym lub stworzonym przez programistę Plezuro). Zatem moduł określa akcję przy wywołaniu metody lub operatora.

Konstruktor

Zawsze po stworzeniu obiektu konstruktor jest wywołany. Jego nazwa to ‘init’.

Dziedziczenie

Moduł może dziedziczyć po wielu innych modułach. Relacja dziedziczenia jest przechodnia, nierówna. To znaczy, że moduł nie może dziedziczyć po samym sobie, a także przodek modułu nie może być jednocześnie jego potomkiem. Dziedziczenie dotyczy metod i operatorów (bez pól i metod statycznych). Można nadpisywać to, co jest odziedziczone. Kiedy moduł nie dziedziczy jawnie, dziedziczy po Module.BasicModule, który to jest przodkiem wszystkich modułów.

Pola i metody statyczne

Pola i metody statyczne są związane dokładnie z jednym modułem. Nie są dziedziczone.

Duck typing

Wszędzie występuje duck typing. To znaczy, że da się wywołać metodę z daną nazwą z obiektu, jeśli taka metoda istnieje w jego module (bezpośrednio lub jest odziedziczona). Ponadto obiekty mogą być przekazywane jako zerowy argument do metod z zupełnie niezależnych modułów.