On Fri, 2010-03-05 at 01:42 -0700, Luke Palmer wrote: > On Fri, Mar 5, 2010 at 12:53 AM, Kevin Jardine <[email protected]> wrote: > > I'm a Haskell newbie but long time open source developer and I've been > > following this thread with some interest. > > > > The GPL is not just a license - it is a form of social engineering and > > social contract. The idea if I use the GPL is that I am releasing free and > > open source software to the community. You are welcome to use it for any > > purpose but in exchange you must also agree to release any software you > > create that uses my software as free and open source. > > > > That is the difference between GPL and BSD type licenses. The GPL very > > deliberately creates an obligation. Yes, that can be inconvenient. It is > > meant to be inconvenient. > > > > Actually the GPL reminds me of a Haskell concept that I am struggling with > > right now - the monad. When I started writing Haskell code I was always > > trying to mix pure and IO code and I soon learned that once I used the IO > > monad I was stuck within it. The monad creates an inconvenient obligation > > and any IO code can only be used within other IO code. There are good > > reasons for monads (just as, in my view, there are good reasons for the > > GPL) but using them means that I need to make a lot of changes to the way I > > write software. >
Hmm. I believe that there are sufficient loopholes in GPL as library to
not use it. Personally I follow such rules of thumb (for myself):
- BSD3/MIT/... - Small code or BSD3 community
- LGPL - Larger libraries
- GPL - Programs
BTW. What if package have multiply licenses? Cabal seems to not express
following situations:
- It is dual licensed
- Library is LGPL but helper program is GPL
- Part of library is on striker license but part of it is for example
public domain (so it would be worth to note this)
> Sure. You can put a GPL license on any software:
>
> license :: a -> GPL a
>
> And if you could have used some public domain package 'a' to create
> some GPL'd software, then you can use the GPL'd 'a' to create that
> same software.
>
> usage :: (a -> GPL b) -> GPL a -> GPL b
>
> :-P
>
> Luke
Hmm. IMHO it is more similar
class Licence l where
license :: Package a => a -> l a
class Licence l => GPLCompatible l where
...
instance GPLCompatible GPL
instance GPLCompatible LGPL
...
liftToGPL :: (GPLCompatible l, Package a) => l a -> GPL a
Regards
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
