A Stratego számára egy forrásfájl egy fordítási egység; ezeket modulnak nevezzük. A modul általános szerkezete (e blokkokat egymás után írjuk, azokat speciális jellel nem zárjuk le):
module modulnév - fejlécimports lib1 lib2 ... libn - importált modulok neveisignature - szignatúrablokk, lásd 3. fejezetrules - szabályok felsorolása, lásd a következő szakaszt strategies - stratégiák felsorolása, lásd 3. szakasz main a neve. Ez a stratégia fog a bemenő adatokra lefutni.
Felhasználói stratégiát a modul strategies blokkjában definiálunk, azokat újsorral választjuk el. A paraméter nélküli stratégia-definíció általános formája: stratégianév = stratégia.
Például egy programnak lehet a fő stratégiája az Eval szabály alkalmazása. Ekkor a modul formája:
A stratégiák paraméterekkel is rendelkezhetnek. Kétféle paramétert különböztetünk meg:
A stratégia formális paraméterlistájában először a stratégiaparamétereket soroljuk fel, majd egy | jel után a termparamétereket. Ha nincsenek termparaméterek, a | jel elhagyható. Például a standard könyvtárban található try stratégiát, ami megkísérel alkalmazni egy stratégiát, de sikertelenség esetén az aktív termet változatlanul hagyja, a következőképp definiáljuk:
A Stratego lehetőséget ad rekurzív stratégiák definiálására. A régebb óta támogatott mód a fixpontkombinátoros forma. A rec operátor első paramétére egy változónév, második paramétere egy kifejezés. A kifejezést úgy értékeli ki, hogy a változónév helyére rekurzívan behelyettesíti önmagát. Például a standard könyvtárbeli repeat(s) stratégiát, ami egy s stratégiát mindaddig alkalmaz, míg a kapott termre s alkalmazható, a következőképp definiálhatjuk:
Az újabb verziókban már az egyszerűbb jelölés is megengedett, a stratégiára név szerint is hivatkozhatunk: