A Fortress típusrendszere egyszerre támogatja név szerinti, illetve struktúrális típusokat, illetve
struktúrális típusok kombinációját.
Minden kifejezésnek van egy statikus típusa, és minden értéknek van egy futásideju típusa (dinamikus típus).
Néha kifejezés esetén is megemlítjük annak a típusát, ám ekkor arra a típusra gondolunk, amire a kifejezés
kiértékelodik.
A nyelv a következő típusokat támogatja:
A trait típus nem más, mint egy olyan nevesített típus, amit vagy egy trait, vagy egy objektumdeklaráció ad meg.
A trait-típus minden olyan típusnak az altípusa, ami az extends kifejezés után áll a deklarációjakor, illetve
minden trait típus az Any altípusa.
Trait deklarációjakor szerepelhet az excludes kulcsszó is, ami azt mondja meg, hogy az adott típus milyen más
típusokat zár ki.
Minden trait típus kizár minden nyíl, illetve N-es típust, illetve két speciális típust: a BottomType -ot, és a ()-t.
Szintaxis: TupleType ::= ( Type, TypeList ) TypeList ::= Type(, Type)*Az N-es típus egy zárójelezett, vesszőkkel elválasztott típusfelsorolásból áll.
Szintaxis: Type ::= ArgType -> Type Throws? ArgType ::= ( (Type , )* Type ...) | TupleTypeAz olyan kifejezések statikus típusa, amelyek függvénytípusra értékelődnek ki.
A függvénytípusúak a függvényértékek futás idejű típusai. A nyíl-típustól csak azért
különböztetjük meg, hogy a túlterhelt eseteket is kezeljük. Egy függvénytípus nyíl-típusok
véges halmazából áll, azonban nem minden részhalmaza a nyíl-típusoknak jólformált függvénytípus.
Egy F függvénytípus jólformált, ha minden (S1, S2) diszjunkt nyíltípusra F-en belül a következő
tulajdonságok teljesülnek:
Három speciális típus létezik a nyelvben: az Any, a BottomType és a (). Az Any az ősosztálya minden típusnak. Az egyetlen
típus, amit kizár, az a BottomType.
A () típus értéke (). Az egyetlen őstípusa (magán kívűl) az Any, és minden más típust kizár.
A típushierarchia legalján a BottomType áll, de a Fortressben semmilyen értéknek nem lehet ez a futásidejű típusa; az exit
és a throw kifejezéseknek ez a statikus típusa. A BottomType minden típus altípusa, és minden mást típust kizár (önmagát is).
A nyelv beépített típusként támogatja a matematikából megismert egész számokat: Ez a ZZ32 (Int), illetve ZZ64 beépített típus, attól függően, hogy hány biten szeretnénk ábrázolni. Mindkét típus altípusa az Integral típusnak.
A nyelv beépített típusként támogatja a racionális számokat, 64 biten ábrázolva. Ez az RR64 típus. A nyelv továbbá támogatja az összefoglaló Number típust.
A Mutató és referencia típusok nem szerepelnek a nyelvi elemek között, ezekre nincs lehetőség Fortressben.
A nyelv támogatja tetszőleges típusból a tömbkészítést, úgy, hogy felsoroljuk az elemeket.
Példák:
A halmaz elemeit kapcsos zárójelek között fel kell sorolni, például: