Licensing of Haskell code

D. Tweed tweed@compsci.bristol.ac.uk
Fri, 23 May 2003 12:54:41 +0100 (BST)


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