package GridFiller::Types; use MooseX::Types -declare => [qw( GridT GridStatusT CharT LetterCellT ResultT WordListT )]; use MooseX::Types::Moose qw(Str ArrayRef Bool Int); use MooseX::Types::Structured qw(Tuple); subtype CharT, as Str, where { length($_) == 1 }; subtype LetterCellT, as Tuple[Int,CharT]; subtype GridT, as ArrayRef[ArrayRef[Str]]; subtype GridStatusT, as ArrayRef[ArrayRef[Int]]; subtype WordListT, as ArrayRef[Str]; subtype ResultT, as ArrayRef[ArrayRef[LetterCellT]]; 1;