On Fri, 23 May 2003, Simon Marlow wrote:
An DSL for licenses would be even better, since you'd presumably be able to interrogate the system to determine the properties of license combinations.
As a (sometimes ungrammatical) first cut, how about
>>>>>>>>>>>>>>>>>>>> data Licences = GPL | BSD | MIT | MPL | OSI | Aladdin deriving Show
hoursWorkPerLicence = 5::Int -- adjust to local conditions operation `canBeDoneUnder` licences = "Consult a lawyer acquainted with the " ++disp licences++" licences to see if "++operation ++" is permissible on a combined work. Should take approximately " ++show ((length licences)*hoursWorkPerLicence)++" billable hours." where disp [x]=" and "++(show x) disp (x:xs)=" "++(show x)++","++(disp xs) <<<<<<<<<<<<<<<<<<<<<<<<<< Sorry, I couldn't resist this :-) (although I do have doubts that the human licence analysis required to write the DSL description of the licence can be done on the licences independently and the then results `intersected' to get judgements on the licence combination, rather than needing to human analyse the licence combination as a whole.) ___cheers,_dave_________________________________________________________ www.cs.bris.ac.uk/~tweed/ | `It's no good going home to practise email:tweed@cs.bris.ac.uk | a Special Outdoor Song which Has To Be work tel:(0117) 954-5250 | Sung In The Snow' -- Winnie the Pooh