> On Wed, Sep 21, 2011 at 5:28 AM, <ian.doche...@nomura.com> wrote: >> Does FSA::MooseRole satisfy everyone (or no-one)?
So I am wondering, why have 'Role' in the name at all? On Sep 21, 2011, at 7:18 AM, Hans Dieter Pearcey wrote: > If the distinguishing feature of this code is that it is a role, then ... I suspect that actually, that the distinguishing feature of this code is that it is an FSA and not a Role. The fact it is a Role only means you can not instantiate it directly and must compose it into a class. This actually strikes me as a drawback more then a benefit. Why not call it Something::FSA (or something similar, your choice) and slap a simple concrete class that consumes the role into it. THe result might look something like this: lib/Something/FSA.pm # simple concrete class lib/Something/FSA/Role.pm # your role This (IMO) solves two problems: 1) Your module is more usable because people can jump right in with a fully functioning class. 2) You don't need to worry about naming it Something::FSA::Role and all the complexity that goes with it (and people still can just use the role if they want). Thoughts? - Stevan Disclaimer: I didn't really look too closely at your code yet, so if this idea make no sense, feel free to ignore it.