text:
Talk:List comprehension

Call me a pedant, but..
"This is the near equivalent to the above expression", where the above had "n*n":

S = [2*x for x in range(101) if x**2 > 3]

Not quite.. "x**2" is very different to "x*x" if x is an integer. I recently wrote a subnet calculator where multiplying by 2 should be the same as a left shift (endian-ness dependent). My subnet masks would have been subject to rounding errors!

Feel free to remove this comment once people have finished arguing whether my edit was necessary :-) —Preceding unsigned comment added by 86.154.39.223 (talk) 22:43, 9 November 2010 (UTC)

History
"The earliest reference to the list comprehension notation is in Rod Burstall and John Darlington's description of their programming language, NPL from 1977, but already SETL had a similar construct." -- I don't understand this phrase. If SETL already had such a construct, how can the NPL one be the first reference? Is it the first occurence of the term, or is the SETL construct actually different? — Preceding unsigned comment added by Bogdanb (talk • contribs) 00:25, 2006 August 28 (UTC)

 * The FOLDOC reference has similar, unclear statements. It's sometimes difficult to know which constructs "are the same". I can tell that SETL has a similar construct called a "tuple former" (see eg http://www.settheory.com/Chapters/Chapter_3.html). But it also works for sets (a "set former") and can contain quantifications forall and exists. It might also be that there are no accepted "references" about SETL. --TuukkaH 09:57, 28 August 2006 (UTC)

 * It is indeed incomprehensible, because it badly misuses the words "reference" and "notation". I've attempted to improve it. -- 98.108.203.136 (talk) 03:05, 30 June 2008 (UTC)

 * I have not been able to find any mention of "list comprehensions" or "set comprehensions" by Darlington in relation to either SETL or NPL. However, in his retrospective "Some History of Functional ProgrammingLanguages", David Turner (designer of SASL, KRC, and Miranda) claims that
 * "NPL was implemented in POP2 by Burstall and used for Darlington’s work on program transformation (Burstall & Darlington 1977). The language was first order, strongly (but not polymorphically) typed, purely functional, call-by-value. It also had “set expressions” e.g.
 * setofeven (X) <=  <:x : x in X & even(x):>"
 * setofeven (X) <=  <:x : x in X & even(x):>"

}}
 * In a footnote attached to the term "list comprehension" he also notes
 * "I initially called these ZF expressions, a reference to Zermelo-Frankel set theory — it was Phil Wadler who coined the better term list comprehension.""

 * I have been able to find use of the term 'set expressions' by Darlington in contexts that might be relevant, e.g. his 1972 thesis.
 * Unless someone can turn up better references that prove otherwise, I would like to update the history section to incorporate Turner's account (and actually include citations as evidence). I think including reference to the term "ZF expressions" is valuable in its own right, as this term seems to show up a lot in the literature in the 80s, and it's a valuable historical note connecting list comprehensions to set-builder notation.
 * I'll give it some time before I try to make the change, so please speak up if you have any reservations or think I am in error! Synechist (talk) 00:23, 27 December 2019 (UTC)

Forms of List Comprehension
"Certain lists are too complex to express by other means." -- An example would be nice. — Preceding unsigned comment added by 38.119.128.203 (talk) 21:30, 2006 August 31 (UTC)

 * It could be easier to give for the previous formulation: "Thus the resulting operation can be complex to express in other means." One example of advanced list comprehension use I've seen is the Haskell solution and generalization here: http://www.frank-buss.de/challenge/index.html --TuukkaH 22:28, 31 August 2006 (UTC)

 * The claim is absurd. -- 98.108.203.136 (talk) 03:20, 30 June 2008 (UTC)

I just don't get it
This definition seems to only make sense if you already know what a list comprehension is! In which case -- why would you be looking up the definition?

Let me take it apart, to try and demontrate what I mean:

"In programming languages, list comprehension is a construct for list processing, analogous to the set-builder notation (set comprehension), that is, the mathematical notation such as the following:"

Okay -- so it's a 'construct for list processing' -- that seem to be categorising it, not explaining it.

And it's 'analogous to the set-builder notation (set comprehension)' -- so we've said that it's similar to set comprehension.

This seems to be uniquely devoid of any description... to summarise:

"List comprehensions are a construct for list processing, that is similar to set comprehensions"

Now getting back to the first few words: "In programming languages" -- this doesn't seem to be accurate. Are list comprehensions limited to functional languages (or perhaps limited to functional languages and the functional parts of mixed-impure functional languages) ?

This definition doesn't resolve some of my own naive questions about list comprehensions.

For example -- is a list comprehension a set of rules that can be used to show that a member doesn't belong to a list?

Or is it a piece of code that theoretically generates a list?

What sort of values is it limited to?

Can a list comprehension apply to something other than numbers? (I think there can... but i don't know)...

59.167.212.209 06:06, 26 March 2007 (UTC)LeonB

 * Thanks for your comments! A list comprehension denotes a list which is the result of the operations included in the comprehension on input lists. I would've expected the text to give the right idea, although it doesn't contain a definition. For exact definitions, you'll have to turn to the specification of each programming language. I tweaked the intro a bit, I hope it helps at least a little.

 * I would think we needn't explain that mathematical and programming language constructs can in general work on other types than numbers too, but perhaps someone can find a non-intrusive way to include this. Haskell and Python are the languages we know of, which already shows that list comprehensions are available for both functional and imperative languages like any other expression syntax. --TuukkaH 20:15, 26 March 2007 (UTC)

Thankyou TukkaH! This sentence here: "A list comprehension denotes a list which is the result of the operations included in the comprehension on input lists" Clears it up a bit for me. I quite like your edits! Thank you again! 203.52.70.253 03:32, 27 March 2007 (UTC)LeonB (different IP address today... but still me, i promise)
 * Although it is nice when a definition of a term does not repeat the term it is intended to define. Just a thought :) dr.ef.tymac 14:35, 27 March 2007 (UTC)

X squared
Some of the examples use x squared. Others use x*x. On a language-to-language comparison, this appears to give some languages a syntactic shortness advantage (see ERLANG versus C#). Should we unify the syntax in all languages to use one or the other?

Rbirkby 09:26, 5 June 2007 (UTC)

 * In an encyclopaedia, shouldn't clarity count? --Paddy (talk) 06:21, 12 July 2008 (UTC)

More jargon for interview time ?
I am equally lost in trying to understand the difference between "List Comprehension" and a function (or lambda function). It seems to me that almost every example language (almost only because a few look so alien that I can't comment) does not show *native* support for list comprehension. Rather, the examples show how to perform "List Comprehension" with the language's existing (non-native comprehension) syntax. A particularly good example of this is the C# example. That's just a query against a set with some operation on the elements which satisfy the query.

If I create a function which generates a randomly dimensioned matrix of unordered numbers which *do not* obey a predicate, can I call that a "syntactic construct" and give it a weird name like "Matrix Evolution" and base my PhD thesis upon it ? — Preceding unsigned comment added by SmigersSmigers (talk • contribs) 08:59, 2015 August 28 (UTC)

Is this really list comprehension?
Most of the examples seem to be showing list processing, not list comprehension like in Haskell... You could write a bunch of AppleSoft Basic to build a list, but that doesn't mean that AppleSoft has list comprehension as a language feature. Perhaps someone a bit more savvy in the feature could way in, but it seems to me that most of the examples in different languages should be deleted. Donald Hosek 20:32, 15 June 2007 (UTC)

 * Your basic point is a good one, but the problem is the applied terminology is sufficiently imprecise to warrant the current approach, which seems to be people adding in what they consider to be their programming language's "closest equivalent" ... this approach definitely has some warts, no doubt about it, but the warts are probably better treated by pointing them out in the article, rather than getting rid of the whole thing. It's actually useful to compare a basic operation in different languages that do not have the same evaluation strategy and semantics as Haskell.

 * Rather than taking out the examples, it seems the following is called for:

 * a clarifying footnote indicating the very point you make about Haskell vs other implementations;
 * a review of the examples to make sure they at least produce the result they claim to produce;
 * a few words at the top of the section "Forms of list comprehension" indicating that not all of these meet the "baseline definition" (assuming that such definition is derived from Haskell usage). dr.ef.tymac 14:06, 16 June 2007 (UTC)

 * I would agree, except the term "list comprehension" isn't imprecise. List comprehensions are syntactic sugar for building lists, using special, set-builder-like syntax.  I've never heard the term used any other way.  Query comprehensions and monad comprehensions aren't really list comprehensions, although they're worth mentioning.  "Map" and "filter" don't qualify at all.  Many of the examples are simply incorrect.  I'm deleting the worst offenders.  --Jorend 22:36, 30 November 2007 (UTC)

 * Less, in this case, is more. I agree with the edits Jorend :-)  --Paddy 06:48, 1 December 2007 (UTC)

Bounded/unbounded
By "Forms of list comprehension", I wonder if Dreftymac was referring to the fact that The mathematical notation at the head of the article, and the Haskell example both show no upper bound, (except finite resources in Haskells case of course). In the examples shown only Haskell and Python give an unbounded version, (I cannot determine if the Visual Prolog example has a fixed upper bound). --Paddy 05:34, 2 September 2007 (UTC)

 * The term "list comprehension" refers to the set builder syntax; bounded/unbounded is an orthogonal concept. You don't need Haskell's lazy evaluation to have list comprehensions. -- 98.108.203.136 (talk) 03:27, 30 June 2008 (UTC)

(Don't) Need Perl6 Example
Perl 6 has more advanced capabilities, and is in fact very similar to Haskel in some respects. Someone who is current with it should add an example and discussion of lazy vs. finite list. — Preceding unsigned comment added by D ugosz (talk • contribs) 18:41, 2007 July 17 (UTC)

 * If Perl6 is not yet released, should an example be given? --Paddy 22:26, 18 July 2007 (UTC)

 * I will be deleting the Perl 6 example as Perl 6 is still in active development and an example here is premature/original research --Paddy 06:15, 8 November 2007 (UTC)

"S = [ 2*x | x<-[0..], x^2>3 ]" employs a needless exponent.
The current list example seems inelegant:

S = [ 2*x | x<-[0..], x^2>3 ]

If I understand correctly, it'd be this list of numbers:

{ 2,4,6,...}

The even numbers. It's puzzling why the list notation uses x^2>3 instead of x>1. Exponents aren't needed to describe even numbers. --AC 04:53, 7 September 2007 (UTC)

 * A mathematical definition of a set was given. Just because there's some other mathematical definition that yields the same set is irrelevant. -- 98.108.203.136 (talk) 03:33, 30 June 2008 (UTC)

 * x^2>3 is not really a good example of a filter since it only filters out x = 1, and inelegantly too. Why not use something like x congruent to y mod z? 83.248.95.93 (talk) 08:32, 7 September 2009 (UTC)

 * More people know he notation for square and greater than. It is a major section of the syntax, but the filter expression itself should be chosen to be easily understood and could be something else, but I don't think there is sufficient reason to change, as yet. --Paddy (talk) 17:46, 7 September 2009 (UTC)

concatMap
The languages which don't have list comprehensions should really be discussing their equivalents of concatMap and filter, rather than map and filter, because in the general case, these are the two things which list comprehensions desugar to. —Preceding unsigned comment added by 74.124.127.135 (talk) 21:53, 10 October 2007 (UTC)

 * Languages which don't have list comprehension and want to discuss their equivalents of map and filter can do so on the relevant pages Masklinn (talk) 13:42, 18 August 2010 (UTC)

Translation into list functions<- What is this about?
I an not a Haskel programmer, but have read several programming languages. I cannot see what this section in the article is about? I think it should be made more general or deleted if all it is is BNF for Haskels list comprehension syntax. --Paddy (talk) 12:22, 23 June 2008 (UTC)

I agree. This is an article about list comprehensions, not Haskell, and this esoteric section hurts rather than aids understanding, so I've removed it. If someone thinks it belongs in WP, add it to the Haskell page. -- 98.108.203.136 (talk) 03:41, 30 June 2008 (UTC)

Infinite lists and the introduction
Haskell seems to not create a list, but to just create something that will iterate over the members of what would be the list, thus allowing the use of unbounded ranges. The introduction seems to say that a list is produced which is not the same thing. Python uses two separate terms here, list comprehensions that create lists and so must be bounded in size, and generator comprehensions which yield successive members of what would be the list when iterated over. I can't think of a rewording of the opening paragraph at the moment, but intermediate lists are not necessarily generated.

If Haskell has no meaningful distinction between a list and the generator that creates list members then that could explain the opening paragraph, but I'm used to lists being of finite size --Paddy (talk) 12:22, 23 June 2008 (UTC)

 * That makes sense, you might want to check on the WP reference desks to see if there is a Haskell person who knows the specific distinction in terminology that they use. Generally, however, since the article should be accessible to a general audience, and this is not exclusively about Haskell, there's no reason why you shouldn't be able to use the intuitive distinction between lists and generators -- a distinction made in many languages, not just Python. dr.ef.tymac (talk) 16:04, 23 June 2008 (UTC)

From this Haskell reference it seems that infinite lists are described as just lists were you specify a pattern to generate successive members. The documentation still calls them lists. Other languages choose to use another name for this such as generator. --Paddy (talk) 16:50, 23 June 2008 (UTC)

This is about the difference between imperative and declarative programming. The sort of lazy evaluation found in Haskell allows one to blur the distinction, so that we can work with mathematical descriptions, which do not have the sorts of finite limits of the von Neumann model. -- 98.108.203.136 (talk) 03:50, 30 June 2008 (UTC)

 * Its a finite generator, of a sequence of members of an infinite list, which can be used where only a computable subset of the members of the list are needed. Haskell and other languages have this ability. --Paddy (talk) 18:34, 30 June 2008 (UTC)

Because list comprehensions are about syntax and similarities to set builder notation, i have changed the intro to better describe this syntax. --Paddy (talk) 18:34, 30 June 2008 (UTC)

Removal of non-LC examples
Unless someone can say why not, I am thinking of doing the following edits to remove non LC type syntax in the examples, including all the map+filter based examples as the page is about doing the task using LC's rather than equivalent code for doing the task:
 * 1) Remove section "Translation into list functions"
 * 2) Haskell: remove all but multiple generator LC example
 * 3) Perl: remove map example
 * 4) In the section "Parallel list comprehension", leeave only the first paragraph up to, but not including the first example.

--Paddy (talk) 15:13, 24 June 2008 (UTC)

 * More importantly, I think we need a better LC explanation here. It seems that the difference between LC and map+filter is not that obvious. Instead of removing examples (that technically might not be LC, but have pretty similar syntax), I suggest moving them to a new 'equivalent syntax in other languages' section (or something like that) and explaining why the alternative syntax is not LC. Ghettoblaster (talk) 16:56, 24 June 2008 (UTC)

 * Hi Ghettoblaster, I think the distinction between LC and map+filter has now been made, and highlighting the true LC examples should also make it clear. I am against leaving a section for map+filter examples as those should be on a different page. I am however thinking of expanding on LC syntax. --Paddy (talk) 09:52, 30 June 2008 (UTC)

 * FYI, before reading this, I removed that horrible Haskell-specific and esoteric "Translation into list functions" section. I also fixed the two bugs in the perl example, FWIW. -- 98.108.203.136 (talk) 03:56, 30 June 2008 (UTC)

Main Example is in Overview
Could the Erlang example be changed to follow the Haskel example in the overview section, then all language examples will do similar things. and be related to the set builder notation expression. --Paddy (talk) 16:23, 22 August 2008 (UTC)

I will be chopping the examples in different programming languages so that only versions of the example set builder notation analogue in haskel are shown. Please stick to versions of this for clarity. --Paddy (talk) 05:20, 26 November 2008 (UTC)

PostScript Reference
Why is PostScript referenced in the references section? I don't see it mentioned in the text. Does PostScript have some feature relevant to list comprehensions? —Preceding unsigned comment added by Ezrakilty (talk • contribs) 12:52, 9 February 2009 (UTC)

Linq example needed
If Linq does follow set builder syntax, then it would be good if their were Linq examples added to the C# section that implemented the standard examples; then the current Linq info could be removed from the 'Similar constructs' section. --Paddy (talk) 09:46, 26 September 2009 (UTC)

SQL, SPARQL,...?
The first thing that comes to my mind when thinking of th este notation in mathematics is SQL and even more so SPARQL. Am I missing something subtle but deciding or should these both prominently mentioned here? Hixxxxx (talk) 11:10, 16 March 2011 (UTC)

 * SQL statements are indeed examples of list comprehensions. I see that SQL is mentioned briefly. I think it would be reasonable to give a longer example as is done with the fuller programming languages. I can't speak to SPARQL but perhaps it falls in that category too. — Preceding unsigned comment added by Ezrakilty (talk • contribs) 13:19, 16 March 2011 (UTC)

Smalltalk and programming bias
I am waiting for someone to say that Smalltalk-80 select: is a filter and that the collect: message is not an LC. What else could explain this very biased "history" of LC in programming languages? Is this about a name for a formal function/mapping/transform or a practice as implemented in the programming languages of an applied science? If you have doubts, see the minimalist changes to Smalltalk in Seaside that take blocks to continuations and then quote "Smalltalk does not have continuations." But in practice Smalltalk is a programming environment, not a language definition. For a useful comparison, look at the impact of genome studies on the previous hierarchies in botany where one standpoint if forced to give way to another (and, yes, I recognize the irony.)

I soon expect to seen an article in which Traits are "shown" in the History section to have come from Scala. G. Robert Shiplett 17:23, 8 June 2011 (UTC) — Preceding unsigned comment added by Grshiplett (talk • contribs)

Too complicated
I consider myself a pretty seasoned programmer in various programming languages and environments, but I had no idea what a "List comprehension" is, and after reading this article, I have no idea anymore what ANYTHING is.

Could at least the introductory section explain this with real-world examples in a SLIGHTLY simpler manner? — Preceding unsigned comment added by 82.139.196.68 (talk) 21:37, 25 December 2011 (UTC)

 * So if the following were taken word-by-word, could you explain where the problem lies:
 * A list comprehension is a syntactic construct available in some programming languages for creating a list based on existing lists. It follows the form of the mathematical set-builder notation (set comprehension) as distinct from the use of map and filter functions.
 * --Paddy (talk) 10:25, 30 December 2011 (UTC)

 * I'll bite: The first sentence, as pointed out by a previous commenter, categorises the concept rather than describing it - in plain English, it says little more than "it's a way of getting a list from another list". The second sentence doesn't really describe it either, instead giving an analogy to an even more abstract concept (set-builder notation) and a contrast to a couple of different ways of getting a list from another list (map and filter - those articles, incidentally, have very clear leading sentences, IMHO).
 * What it doesn't explain is: How does a list comprehension generate a new list? What are its fundamental properties? How does it differ from map and filter, other than in syntax?
 * I can sort of see what the "overview" is trying to get at, but it feels more like "background theory" - sure, in pure maths you don't generate a set you just describe it, but how does that apply to programming with lists? When you get to the list of fundamental components, it seems like it's just a special (and rather ugly) way of writing, but I'm sure that's missing the point in some way.
 * What the article needs is some description of why, given a functional programming language, you would ever want this peculiar notation.
 * A better definition up front might also go hand in hand with a clearer decision on which languages can actually be said to support it. At the moment, there are lots of examples "emulating" it with map and filter implementations, which seems to completely contradict the "in contrast to" in that second sentence. - IMSoP (talk) 22:38, 21 January 2014 (UTC)

 * If anyone happens to see this, I'd like to note that none of the edits in the nearly 5 years since my last comment has improved the introduction. This article still doesn't explain what the point of this syntax is, other than to make pure mathematicians happy. - IMSoP (talk) 15:20, 29 October 2018 (UTC)

Is the Mathematica version correct?
Correct me if I'm wrong, I don't have Mathematica and knows very little about the language, but from cursory examination of the code, the Mathematica version seems to be doing something different than the rest of the examples. The examples are supposed to produce the equivalent of s = [ 2*x | x <- [0..100], x^2 > 3 ] but it seems the Mathematica version are doing something like s = [ x | x <- [0..100], x^2 > 3 ]. In other words, I don't see the multiplication by 2 anywhere in the Mathematica version. — Preceding unsigned comment added by 110.175.240.90 (talk) 15:04, 30 January 2012 (UTC)

Also, per the thread Removal of non-LC examples, map+filter is a distinct concept from LC, and as far as I can tell, Mathematica's Select is a filter. If Mathematica doesn't have a true LC, then it should fall under the criteria for removal. — Preceding unsigned comment added by 110.175.240.90 (talk) 15:12, 30 January 2012 (UTC)
 * +1. Removed. _R_ (talk) 16:23, 29 March 2012 (UTC)

Remove "Parallel list comprehension" as it is a property of zip?
I am thinking of removing the section on "Parallel list comprehension" tomorrow as this is a property of zip pairing the items in two lists more than adding much to list comprehensions. --Paddy (talk) 05:53, 16 June 2012 (UTC)

Example of how it must be syntactical / language construct
If I understand correctly, it must be some feature built into the language itself, with it's own syntactical form, and not just a function doing the same, even if that function is very compact and elegant. Fx Python list comprehension and the Python map function. If think there should be a small subsection describing how the definition (normally? / always?) only applies to language constructs, not to a function, and then two examples of achieving the same (fx Python list comprehension and map-function), stating that the former is indeed list comprehension, while the latter by definition is not. MadsSkjern (talk) 07:07, 24 May 2015 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified 3 external links on List comprehension. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20111008001258/http://w3schools.com/xquery/xquery_flwor.asp to http://www.w3schools.com/XQuery/xquery_flwor.asp
 * Added archive https://web.archive.org/web/20051129140339/http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html to http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html
 * Added archive https://web.archive.org/web/20051018040438/http://page.axiom-developer.org/zope/mathaction/Streams to http://page.axiom-developer.org/zope/mathaction/Streams

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

Cheers.— InternetArchiveBot  (Report bug) 04:20, 24 December 2017 (UTC)

Let's remove the C++ quasi implementation?
Nearly half of the current article is devoted to tangential notes on how you can get something kind of like list comprehensions in C++. I don't see the relevance for the core concept. It seems clear to me that this material instead belongs on Comparison_of_programming_languages_(list_comprehension). Does anyone object to me making that change? -- Synechist (talk) 16:15, 27 February 2022 (UTC)

Comprehension ke 50 words bnao
Comprehension ke 50 words bnao 2409:4081:1591:803E:0:0:27B6:E0A4 (talk) 10:01, 8 June 2024 (UTC)

title: Talk:List comprehension


text:
User talk:Wik/Conflicts

Following cut and paste from conflicts page:

Wik and Lir

 * Wik continues to stalk me around the Wiki. None of the earlier isses, with the exception of Adolf Hitler, has been addressed by the community. I do not see how I am expected to refrain from revert wars; when, the community does not take an active role in resolving the issue. Lirath Q. Pynnor

 * Looks like Lir is fed up with Wik's reversions, insults and refusal to discuss changes. I'm siding with Lir on this one. Wik, knock it off. --Uncle Ed 15:49, 21 Nov 2003 (UTC)
 * The two of them need to be taken aside and told to knock off the reversion wars. This is not good for Wikipedia, makes the project look ridiculous, and makes it impossible to edit decent articles.  RickK 05:18, 13 Nov 2003 (UTC)
 * Wik refuses to discuss, constantly insults, and reverts everything I edit if he feels that anything is even slightly amiss. I can't possibly do anything but revert...either that or quit editing; which frankly, sounds like a better idea every day; then Wik can editwar with you. Lirath Q. Pynnor
 * See here, here, and here to understand what this listing here is about. Maximus Rex 05:26, 13 Nov 2003 (UTC)
 * And I add as another reversion war of the two. andy 11:04, 14 Nov 2003 (UTC)
 * Also . I don't know if I'm sure which of them is at fault, but maybe there's a better solution - Lir and Wik, if one of you makes an edit the other dislikes, mention it on the talk page and ask that it be corrected by a third user .  -- Pakaran 23:30, 15 Nov 2003 (UTC)

 * Wik said my edits were "idiotic" -- I don't feel his attitude towards other users is appropriate. Lirath Q. Pynnor

I would like to ask these two to walk away from each others edits. Lir if wik makes any changes to a page, do not edit for 1 week. Wik, likewise if lir edits a page, refrain from making any edits to that page for 1 week. Does that seem reasonable ? theresa knott 13:59, 14 Nov 2003 (UTC) See also: Problem users/Wik
 * That would just make for slow-motion edit wars, with one-week intervals, but it won't solve anything. --Wik 14:22, Nov 14, 2003 (UTC)
 * If you slow the edit wars between you two down, it gives others the opportunity to make edits in between. You may find that by waiting, the edits you were going to make gets done by someone else, saving you the bother. Even if you do still need to edit, the time interval gives time for feelings to cool down, making a more amiable and constructive edit more likely. It can't hurt to give it a try anyhow. If it works yippee! If it doesn't the situation is no different to what it is now, so nothing is lost. theresa knott 15:35, 14 Nov 2003 (UTC)

 * Wik - it might not solve your problem, but it would solve our problem. If you respect the community, you might want to reconsider the solid advice Theresa is giving you here. Martin 21:10, 14 Nov 2003 (UTC)

 * What exactly is your problem? --Wik 21:44, Nov 14, 2003 (UTC)

 * I believe Theresa has already explained what our problem is, but I don't mind restating. High-frequency revertion wars make the version history less useful, make it hard for other people to contribute, and flood recent changes, watchlists, etc. Low-frequency revertion wars do not cause the community these problems. Martin 22:10, 14 Nov 2003 (UTC)

I think reverts like this are just plain vandalism. -- Wik reverts nearly everything I add to the wiki, he does so without making productive comments. Lirath Q. Pynnor

 * I am sorry to note that Wik seems totally unwilling to accept the right of other users to disagree with him, instead explicitly states that he will revert anything done by those Wikipedians he likes to call vandals and trolls, even if these have demonstrably refrained from uncooperative behavior. I had a lenghty discussion with him about this which I recommend everybody to study (see User talk:Wik), and it is my impression that his idea of cooperation is seriously flawed at a very fundamental level. Kosebamse 13:33, 17 Nov 2003 (UTC)

 * Please do demonstrate how they have demonstrably refrained from uncooperative behaviour. That should be interesting. --Wik 13:55, Nov 17, 2003 (UTC)

 * As I mentioned at the very beginning of our talk on 15 November, Nico has in the past week returned to discussion on Silesia and agreed with szopen on a compromise text; they have also exchanged apologies on their talk pages. Also, he agreed with SpaceCadet on Baldhurs compromise text on Görlitz. You however insisted on calling him a vandal and said he were not "any more useful than Khranus" who was banned last week. All this is on your talk page, see this version. With Lir, it's a long story that reaches far back behind the beginnings of your (and my) Wikipedia engagement. When he was allowed to return this summer, he has demonstrated a collegial attitude and has gained the respect of his former adversaries. The mere fact that he was engaged in reversion wars (with you, mostly) does not speak against his overall good standing (that fact would not even speak so strongly against you, had you not made reversionism a long standing habit, starting on your second day on Wikipedia, and had you not repeatedly argued that your POV = NPOV, which you claimed to "staunchly defend"). Yet you included Lir in your statements about "this kind of users, where discussion is pointless". Again, all of this (and, sadly, much more) is on your talk page. As said page tells much more about your attitudes than I ever could I would like to repeat my suggestion that our fellow Wikipedians should make their judgement by reading it. Kosebamse 15:56, 17 Nov 2003 (UTC)

 * Indeed, then they will see how you fail to substantiate your allegation (which you basically repeat here) of my "POV supremacism". You'd have to adopt a total POV relativism (in which case there would be no such thing as NPOV) to accuse me of that. If I were to go to the article Earth and write that it is flat, and another reverts it, would you also say it's a dispute between two equally valid POVs, which should be debated until there's a compromise? You are clearly unfamiliar with the subject of Silesia if you don't see how Nico's edits there were just as ludicrous. And the fact that he backpedals whenever he sees he doesn't get away with his more extreme POV, doesn't mean that he now accepts the NPOV principle. If this needed any more proof, he tried today to change the article Kaliningrad to begin with the name Königsberg! Anyone with some minimum knowledge about those matters sees that he is here not to make a better encyclopaedia, but to push extreme German-nationalist views that are on the fringe even within Germany. As to Lir, I note that you apparently think that "a collegial attitude" consists of reverting a page even when everyone tells you you're wrong (ask Daniel Quinlan about Lir's behaviour on Second Industrial Revolution). As to your "reversionism" charge, a cursory look at my edit history will disprove that; edit wars make up only a small part of over 7,000 edits; I also don't see how I was involved in any on my second day. Furthermore, most of the edit wars were with a small group of problem users where talk was futile, including Nico and Lir. Why do you think I don't have edit wars with generally respected users? Please tell me exactly where I argued that "my POV = NPOV". Maybe you think it isn't NPOV to revert Nico's inclusion of 10 German links (out of 15) on Silesia, a Polish region, or his listing of the German-reactionary Landsmannschaft Schlesien as the first link, or his putting the German name before the Polish, or to remove Lir's irrelevant Dutch transliteration of Anton Chekhov, or Lir's blatantly wrong punctuation, or Lir's noting someone's death before his birth, or Lir's claim that there is no evidence of water on the Moon, contradicted by the same article? I guess that was all just "my POV"? --Wik 16:49, Nov 17, 2003 (UTC)

 * Howevever, Wik, recent studies (with which you are wholly unfamiliar) have given strong indications that there is no water on the moon; thus, your "POV supremacism" whereby you reverted my edit -- makes you one very problematic user. Lirath Q. Pynnor

 * I will answer you on your talk page in order to keep this page readable. Kosebamse 17:35, 17 Nov 2003 (UTC)

@Wik: 1) I inserted a link to the largest German-Silesien organisation, providing information on Silesian culture and history, and organizing a large part of the German Silesians, when I also leaved the links to 4 similar Polish organisations. 2) When I initially mentioned the German name before the Polish, was this because the German name is better known in English the Polish, and by the way is the historical Silesia divided between Poland AND Germany (and the Czech Republic). However, this is a quite long time ago, and I accepted to mention the Polish name first when you protested. 3) According to Königsberg, I wrote a new and in my opinion better and more precise introduction which is discussed at the talk page, and so far accepted by all contributors who have made comments. 4) Why should pushing extreme Polish-nationalist views be more acceptable than ”pushing extreme German-nationalist views” (your words)? -- Nico 18:47, 17 Nov 2003 (UTC)

People reading this may be interested in How to revert a page to an earlier version and Wikipedia talk:How to revert a page to an earlier version. Martin 19:02, 18 Nov 2003 (UTC)
 * Wik and Lir, your edit/reversion/move wars are annoying other people, and the regular requests for protection of pages is a distraction to sysops. Regardless of who is more correct as to the better edit/punctuation/title of any given article, this annoyance is going on due to BOTH OF YOU. My reccomendation is to WALK AWAY from articles if there are more than 2 reversions. Just explain your point of view as to what you think would be better for the article in the talk page. DO NOT ASSUME THAT YOU ARE THE ONLY PERSON ON WIKIPEDIA WHO CAN IMPROVE THE ARTICLE. If what the other person did is particularly bad, someone else will come along and fix it.  We have over 175,000 articles here, the majority of which can stand improving, and many more need to be written. I'd recommend if either of you see the other one working on an article, go find SOMETHING ELSE you can work on. Sheesh, I'm starting to wish there was a Wikipedia version of a restraining order to keep you two away from eachother. -- 2 cents from annoyed Infrogmation 17:14, 21 Nov 2003 (UTC)
 * If I were to do that, I would have to walk away from every article I edit. I have pretty much done that, I do not think it is fair to expect me to leave the Wiki simply because you don't like seeing Wik revert my edits. Lirath Q. Pynnor
 * It is not reasonable to say "I'd recommend if either of you see the other one working on an article, go find SOMETHING ELSE you can work on." -- I have never edited articles which Wik was working on, Wik is reverting articles I work on. Lirath Q. Pynnor
 * But if you did walk away. then you would be in a much better position to get help from everyone else. Every time wik reverts you put a comment on the talk page. That way others have a chance to help you. If you get into edit wars you annoy everyone and they are less likely to come to your aid. Of course the general concensus may be Wik was right to revert. You'll just have to take that on the chin. theresa knott 17:28, 21 Nov 2003 (UTC)
 * I do walk away. I walk away every day. Every day for weeks, I walk away from a growing number of pages which I have spent hours working on; all of my work reverted, all by Wik (and only by Wik). It is you, the community, which is failing me; I am doing my part by walking away. Do not cast me as "annoying" simply because I take the time to request protection for each and every page which Wik reverts. I am a victim. Do not say I am "annoying" simply because I am trying to get your attention. Lirath Q. Pynnor
 * I've watched some of this, and yes, Wik is definitely following Lir around just to revert things. When challenged (see Wik's talk page), the blanket rationale is that Lir is a "known vandal", irrespective of the merits of specific changes. So asking Lir to back off unilaterally every time is effectively asking him to leave Wikipedia; but I'd much prefer to get rid of Wik, since he is never willing to discuss or negotiate anything, whether it's Lir edits or any other kind of change. Stan 19:01, 21 Nov 2003 (UTC)
 * I completely agree with Stan. BCorr ¤ Брайен 19:34, 21 Nov 2003 (UTC). See the following page histories:
 * Extermination_camp
 * Death_camp
 * Impressionism
 * Communications_blackout
 * Just noting my agreement with Stan. Wik seems to have a personal grudge against Lir. --snoyes 19:47, 21 Nov 2003 (UTC)

Jimbo has spoken
An interest in finding ways to mitigate the consequences of edit wars brought me to this page, along with a post by Jimbo Wales on the Wiki-EN list. By virtue of said post, I would say that Wik has sealed his own fate. However, in a larger sense, Wikipedia still needs to address the various issues raised by the ongoing problem of edit wars. One proposal that I made a while ago was an automatic page protection feature for any page that has been reverted to the same version three times. (See Edit wars on Meta-Wikipedia.) Such automatic page protection would automatically time out after 48 hours. While not a complete solution, such a feature would certainly mitigate the damage that edit wars do to an article's edit history. -- NetEsq 20:49, 21 Nov 2003 (UTC)

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: User talk:Wik/Conflicts


text:
Raufoss

Raufoss is a town in Vestre Toten Municipality in Innlandet county, Norway. The town is the administrative centre of the municipality. It is located about 10 km south of the larger town of Gjøvik. The town is located along the municipal border with the neighboring Gjøvik Municipality and the actual urban area of Raufoss does cross the border slightly, including a small part of Gjøvik as well (as defined by Statistics Norway).

The 7.11 km2 town has a population (2021) of 7,839 and a population density of 1102 PD/km2. Of these numbers, 6.71 km2 of the town and 7,565 people live in the Vestre Toten part of the town and 0.4 km2 of the town and 274 people live in the part of Raufoss that is in Gjøvik.

The village of Raufoss was given town status in 2019.

Etymology
The town is named after a waterfall in the river Hunnselva. The first element is which means "red", and the last element is  which means "waterfall". The color red indicates traces of iron in the river bed.

Economic and cultural activities

The largest employer is what was earlier Raufoss Ammunisjonsfabrikker, now split into several sub companies. These include Nammo, Hydro Aluminium and Raufoss Technology.

Raufoss is also the second to last stop on the Gjøvikbanen railway line. The station also has a local bus service.

The community has an active sports community pivoting around the sports club Raufoss I.L. where the football team has been the most prominent part of the club. Raufoss Fotball currently plays in Norwegian 1st Division.

In addition to sports, Raufoss has an active music community which has fostered such musicians as Ronni Le Tekrø of rock band TNT (band).

title: Raufoss


text:
Worshipful Company of Glaziers and Painters of Glass

The Worshipful Company of Glaziers and Painters of Glass is one of the livery companies of the City of London. The Guild of Glaziers, or makers of Glass, the company's forerunner, existed as early as the fourteenth century. It received a royal charter of incorporation in 1638. It is no longer a trade association of glass craftsmen, instead existing, along with a majority of livery companies, as a charitable body.

The original Glaziers Hall was burnt down during the Great Fire of London in 1666. The current Hall was acquired and refurbished in 1977. It is located on the south side of London Bridge on Montague Close in the London Borough of Southwark and has views over the River Thames towards the City of London.

The company ranks fifty-third in the order of precedence for livery companies. Its motto is Lucem Tuam Da Nobis O Deus, Latin for "O God, Give Us Your Light".

The charitable activities of the Glaziers’ Company are mainly, but not exclusively, focused on stained glass, and are managed by the Glaziers' Foundation, a registered Charity, No 1143700. The foundation has four committees that were previously self-standing charities: the Glaziers' Trust, the London Stained Glass Repository, the Charity for Relief in Need and the Cutter Trust.

The Glaziers’ Trust has the largest budget and has three principal objects: assisting with the restoration and conservation of historic and important stained glass, supporting the education and training of glass artists and conservators and fostering public information and awareness. The board of the trust sits four times a year to consider applications for stained glass conservation and restoration grants. To maintain the highest professional standards it is a condition of grant that remedial work is carried out by an accredited glazier or glass conservator.

The trust is usually unable to fund the cost of an entire restoration project and normally provides only partial funding. However, such is the depth of knowledge and experience on the board that its approval for a project, even if it results in only a modest award, is regularly used by applicants to help raise funds from other organisations.

The trust also supports other organisations within the stained glass community such as the British Society of Master Glass Painters and the Stained Glass Museum in Ely, Cambridgeshire. Both of these receive an annual grant to help them continue their work. The trust also supports the much-respected publication, “Vidimus”, the only online journal devoted to stained glass.

Through the foundation's Craft and Competitions Committee, the trust funds several educational initiatives such as the Stevens Competition. This is a nationwide competition for architectural glass design and we believe it to be the only national competition of its kind. It attracts entries from young artists, which are judged by a panel of prominent craftsmen. Sponsors of the competition regularly commission work from among the entries and the careers of many young artists have been launched by participation in the competition.

The Award for Excellence and the Ashton Hill Awards provide opportunities for those wishing to pursue a practical career in stained glass. They provide the funds for placements in working studios where mentored and supervised work experience takes place. The Award for Excellence provides 40 weeks of placements and the Ashton Hill Awards 10 weeks. The Arthur and Helen Davis Travelling Scholarships provide opportunities for the study of glass outside the UK. Recent awardees have studied in the United States, Iceland, France, Germany and the Czech Republic.

Continuing Professional Development Awards are available for practitioners wishing to broaden their skills either artistically or by attaining accredited conservator status.

The London Stained Glass Repository (LSGR) rescues and relocates good quality stained glass, principally from redundant churches. In addition to building closure, glass may need to be rescued and protected from the threat of vandalism. Rescued glass is available free of charge for installation in any suitable building to which the public has access.

Once vulnerable glass has been identified the Management Committee of the LSGR assesses its artistic merit, state of repair and general condition. When this work has been done negotiations for the release and storage of the glass begin. Once in store, the glass is photographed, catalogued and all relevant information recorded. Only then can a new home be sought with most of the glass going to religious buildings. The LSGR does not limit its activities to the UK, and glass has been relocated in the United States, Australia, the Falkland Islands, and Croatia. Glass can be lent to museums or included in educational projects at home and abroad.

The company awards grants to churches and other public buildings for restoring and conserving stained glass.


text:
Worshipful Company of Basketmakers

The Worshipful Company of Basketmakers is one of the Livery Companies of the City of London. The Company was constituted in 1569. It was recognised as a Livery Company in 1825, and received a Royal Charter in 1937. The Company has recently instituted Yeoman memberships for working basketmakers and works closely with the basketmaking trade through the Trade Advisor and Trade Committee. The Company has a strong charitable trust and supports many charitable causes, and supports the three armed services with its involvement with 100 (Yeomanry) Regiment Royal Artillery, HMS Richmond and 5 (AC) Squadron RAF. There is an independent but related Masonic Lodge called the Basketmakers Lodge No. 5639. Membership of this Lodge is exclusive, drawn from members of the Worshipful Company of Basketmakers. The Company ranks fifty-second in the order of precedence for Livery Companies. Its motto is Let Us Love One Another.

title: Worshipful Company of Basketmakers


text:
Crowsnest Pass

Crowsnest Pass (sometimes referred to as Crow's Nest Pass, col du Nid-de-Corbeau) is a low mountain pass across the Continental Divide of the Canadian Rockies on the Alberta–British Columbia border.

Geography
The pass is located in southeast British Columbia and southwest Alberta, and is the southernmost rail and highway route through the Canadian Rockies. It is the lowest-elevation mountain pass in Canada south of the Yellowhead Pass (1130 m); the other major passes, which are higher, being Kicking Horse Pass (1640 m), Howse Pass (1530 m) and Vermilion Pass (1680 m).

Crowsnest Pass comprises a valley running east–west through Crowsnest Ridge. On the Alberta side, the Crowsnest River flows east from Crowsnest Lake, eventually draining into the Oldman River and ultimately reaching Hudson Bay via the Nelson River. Summit Lake on the British Columbia side drains via three intermediary creeks into the Elk River, which feeds into the Kootenay River, and finally into the Columbia River to the Pacific.

Transportation

Before the arrival of Europeans, Indigenous people used this major breach through the Front Ranges for seasonal migrations, and also for trade between mountain and plains cultures.

The Canadian Pacific Railway (CPR) built the Crowsnest Route line from Lethbridge, Alberta, to Kootenay Landing, British Columbia, through the Crowsnest Pass between 1897 and 1898. This line was built primarily to access mineral-rich southeastern BC via an all-Canadian rail route, and to assert Canadian (and CPR) sovereignty in an area that U.S. railroads were beginning to build into. It also opened up coal deposits in the Crowsnest and Elk River valleys, which were important to mineral smelting operations and assisted the CPR in its conversion of locomotives from wood to coal. The CPR sought and received construction funding from the federal government, partially in exchange for a freight subsidy on prairie farm exports and equipment imports which came to be called the "Crow's Nest Pass Agreement".

"The Crow Rate", as the subsidy agreement came to be referred to, was eventually extended from CPR's Crowsnest Pass railway line to apply to all railway lines in western Canada, regardless of corporate ownership or geography, creating artificially low freight rates for grain shipments through the Great Lakes ports. The rate also correspondingly limited industrial growth in the western provinces as it was cheaper to produce items in eastern Canada and ship them west under the Crow Rate. This subsidy was finally abolished in 1995.

The first motor vehicle to cross the Canadian Rockies did so via Phillipps Pass, about 1 km north of Crowsnest Pass, and in 1917 a road was blasted around the shores of Crowsnest Lake and across Crowsnest Pass, renamed Interprovincial Highway Three in 1932. It is also known as the Crowsnest Highway.

On August 7, 1919, Captain Ernest Hoy flew a Curtiss JN-4 "Jenny" through Crowsnest Pass, the first flight across the Canadian Rockies.

Natural resources
The Crowsnest Pass area on both sides of the provincial boundary is rich in coal deposits, which were quickly developed after completion of the rail line. All the mines on the Alberta side were closed by the end of the 20th century as cheaper and safer open-pit mines opened on the British Columbia side of the pass. Some logging and oil and gas exploitation also occur in the area and a sulphur plant has been in operation there for several years. Tourism based on the natural and historical resources of the area remains underdeveloped but is slowly growing. The area hosts the world-class Sinister 7 Ultra Marathon, a 161-kilometre foot race that winds through the mountains around the community. Crowsnest Pass also has a local ski hill, Pass Powderkeg, and an outdoor pool.

History

 * The Crowsnest Pass is the richest archaeological zone in the Canadian Rockies. The oldest relics are stone tools found on a rock ridge outside Frank, Alberta, from the Clovis culture, 11,000 years before present. Other sites include chert quarries on the Livingstone ridge dating back to 1000 BC.
 * 1800: Members of David Thompson expedition avoid entering the pass.
 * ca. 1850: Crow Indians dispersed from area by Blackfoot Confederacy.
 * 1873: Michael Phillipps (Hudson's Bay Company) traverses pass, reports coal deposits. Crowsnest Pass Point of Interest Sign.jpg
 * 1877: The First Nations cede their title in the eastern portion of the pass with Treaty 7. The western portion in British Columbia is unceded.
 * 1878: Government survey by George Dawson.
 * 1881: first surveys by Canadian Pacific Railway.
 * 1897: CPR enters into farm export subsidy agreement for freight rates in exchange for financing of the railway line between Lethbridge, Alberta, and Nelson, BC. Crow's Nest Pass Coal Company commences operations in British Columbia.
 * 1898: CPR opens the railway line, 10th siding (later Blairmore, Alberta) established. Settlement of Fernie, British Columbia, established.
 * 1900: the Frank Mine opens and the new town of Frank, Alberta, is established. Other coal mines and towns spring up between 1900 and 1919.
 * 1902: explosion at Coal Creek mine kills 128 men.
 * 1903: the cataclysmic Frank Slide occurs on the north slope of Turtle Mountain; 82 million tonnes of limestone crash down and partially bury the town of Frank, killing approximately 90 of the town's 600 residents.
 * 1904: Fernie, British Columbia, incorporates.
 * 1908: forest fire destroys Fernie (pop: 6000), which soon rebuilds.
 * 1914: an explosion in the mine at Hillcrest kills 189 men, Canada's worst mine disaster.
 * 1916–1923: Prohibition in Alberta; "rum-running" across the provincial boundary.
 * 1920: Train robbery and shootout at Bellevue Cafe.
 * 1923: 'Emperor Pic' (Emilio Picariello) and Florence Lassandro hanged for shooting a police constable; first woman hanged in Alberta.
 * 1932: The portion of the Red Trail through the Frank Slide is realigned as a Great Depression project and renamed Interprovincial Highway 3.
 * 1946: An RCAF DC-3 Dakota crashes into a mountain, killing all seven people on board.
 * 1966: Communities of Michel, Natal, and Sparwood amalgamate into the District Municipality of Sparwood, British Columbia.
 * 1979: Communities of Coleman, Blairmore, Bellevue, Hillcrest, and Frank amalgamate to form the Municipality of Crowsnest Pass, Alberta.
 * 2017: The Ktunaxa Nation and the Crown move to Stage 5 negotiations of a treaty that affects the western portion of Crowsnest Pass

title: Crowsnest Pass


text:
Jean Joseph Mounier

Jean Joseph Mounier (12 November 1758 – 28 January 1806) was a French politician and judge.

Biography
Mounier was born the son of a cloth merchant in Grenoble in Southeastern France. He studied law, and in 1782 purchased a minor judgeship at Grenoble. He took part in the struggle between the parlements and the court in 1788, and promoted the meeting of the estates of Dauphiné at Vizille (20 July 1788), on the eve of the French Revolution. He was secretary of the assembly, and drafted the cahiers ("notebooks") of grievances and remonstrances presented by it to King Louis XVI. Thus brought into prominence, Mounier was unanimously elected deputy of the third estate to the Estates General of 1789; Mounier also founded the Monarchiens party in August 1789.

There, and in the Constituent Assembly, he was at first an upholder of the new ideas, pronouncing himself in favor of the union of the Third Estate with the two privileged orders, proposing the famous Tennis Court Oath, assisting in the preparation of the new constitution, and demanding the return of Jacques Necker. After the Estates General became the National Assembly, Mounier was elected to the committee on the constitution. Despite his skepticism of the abstract declaration of rights and his belief that such a declaration should be accompanied by a written constitution, Mounier was the principal author of the first three articles of the Declaration of the Rights of Man and of the Citizen, adopted on 6 August. On 28 September 1789 he was elected president of the Constituent Assembly. Being unable to approve the proceedings which followed, Mounier withdrew to Dauphiné, resigned as deputy, and, becoming suspect, took refuge in Switzerland in 1790.

He returned to France in 1801. Napoleon Bonaparte named him prefect of the department of Ille-et-Vilaine, which he reorganized, and in 1805, he was appointed councillor of state. He died in Paris. His principal writings are Considérations sur les gouvernements (1789); Recherches sur les causes qui ont empeché les Français de devenir libres (1792), and De l'influence attribuée aux philosophes, aux francs-maçons et aux illuminés sur la Révolution Française. (1801).

Works

 * Projet des premiers articles de la Constitution (1789)
 * Déclaration des droits de l'homme et du citoyen (1789)
 * Nouvelles observations sur les États-Généraux de France (1789)
 * Rapport de M. Mounier (1789)
 * Exposé de la conduite de M. Mounier, dans l'Assemblée nationale, et des motifs de son retour en Dauphiné (1789)
 * Considérations sur les gouvernements, et principalement sur celui qui convient a la France. (1789)
 * Lettre écrite à la municipalité & au comité du bourg de Veynes (1789)
 * Rapport du comité chargé du travail sur la constitution (9 juli 1789)
 * Aux Dauphinois (1790)
 * Appel au tribunal de l'opinion publique du rapport de M. Chabroud, et du décret rendu par l'Assemblée nationale le 2 octobre 1790. Examen du mémoire du duc d'Orléans, et du plaidoyer du comte de Mirabeau, et nouveaux ecclaircissemens sur les crimes du 5 et du 6 octobre 1789 (1790)
 * Réflexions politiques sur les circonstances présentes (1790)
 * Observations sur l'état passé, présent et futur de la nation, et de l'influence du publiciste Mably sur la Révolution (1791)
 * Recherches sur les causes qui ont empêché les Français de devenir libres, et sur les moyens qui leur restent pur aquiérir la liberté. Tome premier; Tome second. Genève (1792)
 * Adolphe, ou principes élémentaires de politique, et résultats de la plus cruelle des expériences (1795)
 * De l'influence attribuee aux philosophes, aux francs-masons et aux illumines sur la revolution de la France. Tübingen (1801)

title: Jean Joseph Mounier


text:
Latent typing

In computer programming, latent typing refers to a type system where types are associated with values and not variables. An example latently typed language is Scheme. This typically requires run-time type checking and so is commonly used synonymously with dynamic typing.

title: Latent typing


text:
Typing rule

In type theory, a typing rule is an inference rule that describes how a type system assigns a type to a syntactic construction. These rules may be applied by the type system to determine if a program is well-typed and what type expressions have. A prototypical example of the use of typing rules is in defining type inference in the simply typed lambda calculus, which is the internal language of Cartesian closed categories.

Notation
Typing rules specify the structure of a typing relation that relates syntactic terms to their types. Syntactically, the typing relation is usually denoted by a colon, so for example $$e:\tau$$ denotes that an expression $$e$$ has type $$\tau$$. The rules themselves are usually specified using the notation of natural deduction. For example, the following typing rules specify the typing relation for a simple language of booleans:

\frac{}{\mathsf{true} : \mathsf{Bool}} \qquad \frac{}{\mathsf{false} : \mathsf{Bool}} \qquad \frac{e_1 : \mathsf{Bool} \quad \; e_2 : \tau \quad \; e_3 : \tau}{\mathbf{if}\ e_1\ \mathbf{then}\ e_2\ \mathbf{else}\ e_3 : \tau} $$

Each rule states that the conclusion below the line may be derived from the premises above the line. The first two rules have no premises above the line, so they are axioms. The third rule has premises above the line (specifically, three premises), so it is an inference rule.

In programming languages, the type of a variable depends on where it is bound, which necessitates context-sensitive typing rules. These rules are given by a typing judgment, usually written $$\Gamma \vdash e : \tau$$, which states that an expression $$e$$ has type $$\tau$$ under a typing context $$\Gamma$$ that relates variables to their types. Typing contexts are occasionally supplemented by the types of individual variables; for example, $$\Gamma,x{:}\tau_1 \vdash e : \tau_2$$ can be read as "the context $$\Gamma$$ supplemented by the information that the expression $$x$$ has type $$\tau_1$$ yields the judgement that expression $$e$$ has type $$\tau_2$$". This notation can be used to give typing rules for variable references and lambda abstraction in the simply typed lambda calculus:

\frac{x{:}\tau \in \Gamma}{\Gamma \vdash x : \tau} \qquad \frac{\Gamma,x{:}\tau_1 \vdash e : \tau_2}{\Gamma \vdash (\lambda x{:}\tau_1.\,e) : \tau_1 \rightarrow \tau_2} $$

Similarly, the following typing rule describes the $$\mathbf{let}$$ construct of Standard ML:

\frac{\Gamma \vdash e_1 : \tau_1 \qquad \Gamma, x{:}\tau_1 \vdash e_2 : \tau_2}{ \Gamma \vdash \mathbf{let}\ x = e_1\ \mathbf{in}\ e_2\ \mathbf{end} : \tau_2} $$

Not all systems of typing rules directly specify a type checking algorithm. For example, the typing rule for applying a parametrically polymorphic function in the Hindley–Milner type system requires "guessing" the appropriate type at which the function should be instantiated. Adapting a declarative rule system to a decidable algorithm requires the production of a separate, algorithmic system that can be proven to specify the same typing relation.

title: Typing rule


text:
Mother's Milk (album)

Mother's Milk is the fourth studio album by American rock band Red Hot Chili Peppers, released on August 16, 1989 by EMI Records. After the death of founding guitarist Hillel Slovak and the subsequent departure of drummer Jack Irons, vocalist Anthony Kiedis and bassist Flea regrouped with the addition of guitarist John Frusciante and drummer Chad Smith. Frusciante's influence altered the band's sound by placing more emphasis on melody than rhythm, which had dominated the band's previous material. Returning producer Michael Beinhorn favored heavy metal guitar riffs as well as overdubbing. Frusciante perceived Beinhorn's taste as excessive, and as a result, the two constantly fought over the album's guitar sound.

Mother's Milk was a greater commercial success than the band's first three albums, peaking at number 52 on the US Billboard 200. It received widespread airplay for the three singles which are the cover of Stevie Wonder's "Higher Ground", "Knock Me Down" and "Taste the Pain", and it became their first gold record in early 1990. Although it was not met with the same positive critical reception that its predecessor The Uplift Mofo Party Plan (1987) had garnered, Mother's Milk was the first step for the band in achieving international success and, according to Amy Hanson of AllMusic, "turned the tide and transformed the band from underground funk-rocking rappers to mainstream bad boys with seemingly very little effort."

Background
After Red Hot Chili Peppers received a record deal with EMI Records in 1983, the group established themselves as a prominent funk rock band with their 1984 debut album The Red Hot Chili Peppers. Disappointed with the results of the production, vocalist Anthony Kiedis and bassist Flea replaced guitarist Jack Sherman with founding member Hillel Slovak, who had quit his band, What Is This?, several weeks before. The group's George Clinton-produced second album, Freaky Styley (1985), was Slovak's first effort with the band. The Uplift Mofo Party Plan, which was released in 1987, saw the return of original drummer Jack Irons who had left the band prior to the recording of their debut album. The album, a critical success that peaked at number 148 on the Billboard 200, is the only Red Hot Chili Peppers album the original members recorded together. Shortly following the ensuing tour, Slovak died of a heroin overdose and left the rest of the group in complete shock; Irons, citing an inability to cope with the death, quit. Kiedis and Flea, similarly devastated, were determined to persevere despite the loss of two key members. In September 1988 they chose DeWayne "Blackbyrd" McKnight, a friend of Clinton's and former member of the funk band Parliament, to replace Slovak on guitar; D. H. Peligro, formerly of the punk rock outfit, Dead Kennedys, replaced Irons. The new lineup made it through three shows before the band felt McKnight did not fit and he was fired. McKnight was so angry he threatened to burn Kiedis's house down. McKnight however was with the band long enough to record "Blues for Meister", the first Chili Peppers song featuring Flea on lead vocals and only song to feature Peligro as well. The song would appear a few years later on Out in L.A..

The band wasn't without a guitarist for very long. In October 1988, Kiedis and Flea found a replacement for McKnight in teenage guitarist John Frusciante. Flea had originally directed Frusciante to audition for the band Thelonious Monster. An avid Red Hot Chili Peppers fan, Frusciante was, according to Flea, "a really talented and knowledgeable musician. He [Frusciante] knows all the shit I don't know. I basically know nothing about music theory and he's studied it to death, inside and out. He's a very disciplined musician—all he cares about are his guitar and his cigarettes." Frusciante was also not very familiar with the funk genre: "I wasn't really a funk player before I joined the band. I learned everything I needed to know about how to sound good with Flea by studying Hillel [Slovak]'s playing and I just took it sideways from there."

With Frusciante in place and Peligro still on drums, the band embarked on a small tour and began writing music for the next album. It wasn't long though before the band felt they needed to part ways with Peligro as well, who had his own drug problems. Peligro, who helped co-write "Stone Cold Bush," "Taste the Pain" and "Sexy Mexican Maid" for the Mother's Milk album, was fired in late November 1988. Kiedis said it was one of the hardest things he had to do because they considered Peligro a good friend.

The band was now once again without a drummer and were forced to hold open auditions. The last to audition, Chad Smith, was a six-foot three-inch tall drummer who, according to Flea, "lit a fire under our asses." Kiedis later said the audition with Smith left "[the band] in a state of frenzied laughter that we couldn't shake out of for a half an hour." Smith came from a different background than his three bandmates. Kiedis, Flea and Frusciante were more into the punk-rock scene while Smith was into classic rock and heavy metal. Smith was officially hired in December 1988 and played a handful of shows with the band to finish out the year.

Recording and production
Unlike the stop-start sessions for The Uplift Mofo Party Plan, where Kiedis would frequently disappear to seek drugs, pre-production for Mother's Milk went smoothly. Many of the songs had already been written, and some were even recorded by the time the band started pre-production in January 1989. "Taste the Pain" was recorded before Smith joined, and it featured Philip "Fish" Fisher of Fishbone on drums. The band recorded basic tracks at Hully Gully studios in Silver Lake; songs like "Knock Me Down" were formed from jam sessions without any input from returning producer Michael Beinhorn. According to Flea, the Hully Gully sessions bore fruit: "We played hard and fast more than [at] any other time in our career, I think. A lot of chops were going down [...] we played constantly, got to know each other, and came up with a record." Kiedis and Flea recognized that Frusciante's presence had become a significant influence on the band's new material as the Hully Gully sessions were proving to be extremely productive; Flea recalled that "[Frusciante] was an immense new element to the sound of our band and a big opening up for us."

The band entered the Ocean Way Recording studio in Hollywood in February 1989 to record Mother's Milk. "It was weird when I first joined the band because we recorded the album after I'd been in the band for just a few months and Chad had actually been in for just two weeks," Frusciante recalled. "I was still a little bit confused about my position and we were just like four individuals. Music is all about welding people into a unit and with all the touring we've been doing we're now like an eight-armed cosmic octopus!" Beinhorn pushed the Chili Peppers to produce the best possible takes for each of the record's 13 tracks while the band hoped to obtain a hit record.

Although there had been stress and conflict during the recording of other Chili Peppers albums, the sessions for Mother's Milk were uncomfortable thanks to Beinhorn's incessant desire to create a hit. He recalled that he and the band were at odds, saying, "Suffice to say that I had a very intense personal relationship [with the band] and somewhere along the line I fell out with [them]." Beinhorn constantly clashed with Frusciante over guitar effects. According to Kiedis, "[Beinhorn] wanted John to have a big, crunching, almost metal-sounding guitar tone whereas before we always had some interesting acid-rock guitar tones as well as a lot of slinky, sexy, funky guitar tones." Frusciante was frustrated with Beinhorn's attitude, and he resented his playing on the record, thinking that it was too "macho". Kiedis recalled that, in the end, "I couldn't tolerate his direction any longer. He was trying to squeeze something out of me that I wasn't feeling, and we got in a fight and I knew that I was done with him."

In March 1989, the Chili Peppers embarked on a two-month tour to break-in the new lineup. The "Positive Mental Octopus tour" saw the band play small venues throughout the United States, including several concerts on the East and West Coasts. At this time, Frusciante began asserting more energy and his ego "got a little swollen," according to Flea. "He was running around being rude to girls and getting them pissed off. But that's to be expected, I mean, shit, you're 18 years old and you want to get laid really bad and all of a sudden you're in a band, the girls want to fuck. You're bound to go crazy." Another incident, following a performance at the George Mason University in Fairfax, Virginia, caused legal repercussions; a student accused Kiedis of engaging in sexual misconduct and indecent exposure. Kiedis was subsequently arrested and released on bail pending a trial that was to be set for a later date.

Music
The band's style of music developed with the arrival of Frusciante; producer Michael Beinhorn observed, "It was apparent early on that John was the perfect guitarist for the band—he brought the elements of songwriting and composition to the band which they'd never truly had prior to his involvement. I believe that John is a pivotal figure in the Chili Peppers, being that he is such a distinctive songwriter." Frusciante altered the band's sound by introducing melodies, harmonies and more-complex song structures. In contrast to the group's previous albums, which featured groove and rhythm-based songs, Mother's Milk contained melodic compositions that reflected the new guitarist's influence. Per music journalist Jeff Apter, most of the record, due to Beinhorn's presence, is composed of heavy metal guitar riffs and excessive layering. Musically, Mother's Milk has been described as funk metal,  alternative metal, and funk rock.

Mother's Milk features an array of musical styles in its 13 tracks. Among the songs that surfaced from the Hully Gully sessions in early 1989, "Knock Me Down" became one of the most radical shifts in style for the band. The introspective lyrics, which analyze the death of Hillel Slovak and the devastating effect drugs can have on life, were a new approach for Kiedis, who primarily wrote of sexual intercourse and a hedonistic lifestyle. Kiedis did not, however, want the track to be associated with "anti-drug" sentiments, claiming, "[the song] is about letting your friends know that you need help and then being willing to accept the help of others when you need it, whether it's from drugs, or from a number of other personal problems." According to Apter, the song "Knock Me Down" was "clearly the most important track the band had ever laid down; it proved that these Peppers were more than knuckleheads with socks hanging off their cocks." Musically, the track integrates the Chili Peppers' typical punk influences, but asserts heavier emphasis on melody and harmonics that lead into more alternative territory. "Knock Me Down" was originally recorded to be a duet between Kiedis and Frusciante, but the song was remixed before being released as a single; the new mix inadvertently emphasized Frusciante's voice instead of Kiedis's.

"Higher Ground" became another song that helped the band achieve international success. Originally written and recorded in 1973 by R&B singer Stevie Wonder, the track was, according to Flea, a perfect cover for the band: "[...] the lyrics are great. Especially as far as the situation that the band has been in, as far as state of mind, for the past few months. That song is really about raising and uplifting yourself spiritually." Flea said the band covered the song to pay homage to Wonder and the important role he played in popular music. The cover begins with a funk bass-line, followed by multi-layered heavy metal guitar progressions and effects-treated vocals. "Higher Ground"'s chorus features backing vocals from an array of friends and engineers who worked on the record; the individuals' competence in singing was irrelevant to the band because they sought to achieve a sense of unity. Mother's Milk was composed of a variety of songs that expanded the Chili Peppers' repertoire. The instrumental "Pretty Little Ditty" was one of the few songs that featured no guitar layering; Apter notes that the song is "a dreamy, sweetly stoned instrumental featured deft picking and strumming from Frusciante, intertwined with blasts of trumpet from Flea." The eclectic track was originally intended to be more than three minutes long, but was cut to just under two minutes before the album's release. The song "Punk Rock Classic" contains an improvisation of "Sweet Child o' Mine" by Guns N' Roses. "Taste the Pain" reflects a more meditative and melodic theme, similar to "Knock Me Down." Frusciante introduces psychedelic guitar progressions in the verse, while the lyrics touch on themes of love and loss. Other tracks such as "Stone Cold Bush" presented topics of prostitution while "Punk Rock Classic" was, in retrospect, an emulation of typical punk rock songs by Black Flag and The Germs—bands that were influential to the Chili Peppers.

Album artwork
Mother's Milk features a black and white photograph of the band sprawled across the arms of a giant topless woman, with her nipples covered by a rose on the right (which appears colored), and Kiedis standing up on the left. Controversy arose when the model Dawn Alane claimed the band did not notify her that she was the one chosen to be on the cover of Mother's Milk. Furthermore, several national chains refused to sell the record because they believed the female subject displayed too much nudity. A more strictly censored version was manufactured for some retailers that featured the band members in far larger proportion than the original. The cover of the record was influenced by a promotional poster Kiedis had from the 1960s of Sly and the Family Stone, in which frontman Sly Stone held a miniaturized band in his palm. When Kiedis was finding shots of the band to use on the cover, Frusciante initially refused every photograph Kiedis showed him but settled on one of him sitting down laughing. Mother's Milk was affixed with an "explicit language" warning sticker that, according to Kiedis, "Doesn't bother me. Our lyrics are very explicit, whether it's about sex or friendship or love for life in general." The cover booklet of the record features a painting by Hillel Slovak. Following the album's release, a limited number of promotional posters were issued with the model's breasts exposed. Alane had no knowledge of the pressing and sued the band, winning a $50,000 settlement.

The singles for Mother's Milk followed a similar artistic theme. The cover of "Knock Me Down" featured the band shirtless, in front of a photograph of an elephant in an African setting. "Higher Ground" was similar in that all four members — photographs of which were taken from the music video — were printed in front of a large image of Kiedis's face. "Taste the Pain" featured the band together with a red and yellow background with the Chili Peppers' asterisk adjacent to the typeface.

Promotion and release
A promotional 12" titled For the Thrashers, which contained four songs from the album, was released to radio stations to promote the then forthcoming album in the weeks leading up to its release. Director Drew Carolan shot a promotional video for "Good Time Boys" which was released on the 1989 Hard 'n Heavy Vol. 2 collection. The video, which has never been released elsewhere by the band or even acknowledged as an official video, featured the band performing the song with cut away scenes of the band being interviewed discussing the album and their sound. Carolan was also hired to film the music videos for album's first two singles, "Higher Ground" and "Knock Me Down" before the release of Mother's Milk. The initial premise for "Higher Ground" was to have the song's original writer, Stevie Wonder, sit in the lotus position as the Chili Peppers dance around him; however, Wonder declined to be in the video. Kiedis gave full creative license to Carolan on the condition that he "make us [the band] look like the Gods of Funk." While the video for "Higher Ground" was intended to be upbeat and exuberant, "Knock Me Down" was filmed to be more poignant; Carolan recalls, "It was a very special track for the band and it needed to be treated with the utmost care and respect. Anthony and Flea just wanted it to be real soulful with a sense of urgency." The videos took a day each to complete and were filmed with relatively small budgets, but the outcome, as Jeff Apter notes, "[B]ecame key elements of [the album's] success." "Knock Me Down" is notable for featuring an appearance by actor Alex Winter, who would co-direct the video for the band's third single, "Taste the Pain". MTV introduced the band's videos into their daily rotation, highlighting the band as up-and-coming and "one to watch".

Critical reception
Although more commercially successful than the band's previous albums, Mother's Milk received mixed reviews from critics who were unimpressed with the excessive distortion found throughout the album. However, it was praised as well; Amy Hanson of AllMusic called it "a pivotal album for the Red Hot Chili Peppers," and believed that "if anyone doubted the pulsating power that leapt from the blistering opener, 'Good Time Boys', it took only a few bars of the Red Hot Chili Peppers' outrageous, and brilliant, interpretation of the Stevie Wonder classic 'Higher Ground' to prove that this new lineup was onto something special. Wrapping up with the aptly titled and truly punked-out 'Punk Rock Classic' and the band's own punched-up tribute to 'Magic Johnson', Mother's Milk was everything the band had hoped for, and a little more besides." Steve Morse of The Boston Globe called it a "high-octane fusion of metal, funk and rap—sort of Prince meets Jimi Hendrix in the Twilight Zone," while noting that "Knock Me Down" combined "electrifying musicianship". The Toronto Star commented that the Red Hot Chili Peppers were "the Mothers of Invention for the 1990s." In 2005, Mother's Milk was ranked number 359 in Rock Hard magazine's book The 500 Greatest Rock & Metal Albums of All Time.

While Carly Darlin of the Orange County Register found the album to be "an energetic and fun restatement of the RHCP whiplash funk attitude", she believed that "with the exception of the dreamy instrumental 'Pretty Little Ditty', it doesn't break any new ground." She continued by saying that, if anything "Mother's Milk is a slight step away from the party-funk grooves of the last two albums and a return to the band's punk-rock roots. They even reprise the cover of Jimi Hendrix's 'Fire', which they did as a B-side for their 'Fight Like A Brave' 12-inch two years ago." Furthermore, Mark Jenkins of The Washington Post said "the polite term for albums like 'Milk' is 'eclectic', but it really sounds as if the band is unraveling [...] Considering the circumstances, it's not especially surprising that the album seems to be looking for someone to give it directions." However, Jenkins did believe Frusciante possessed "solid metal chops and means to show them off." Village Voice critic Robert Christgau mocked the band's ability to promote empathy and found the guitar layering in Mother's Milk to have been done improperly: "punks who loved Hendrix and P-Funk way way back, they're finally cashing in on their good taste, and though unbelievers dis their sincerity, execution's the problem. They didn't have the chops to bring it off then, and by pushing the guitar up front they sound even cruder now. But they're perfectly nice fellas, really—mention 'compassion' in the very first verse."

Commercial performance
Released on August 16, 1989, Mother's Milk peaked at number 52 on the U.S. Billboard 200, and number 32 on the U.S. Cash Box album charts. The record failed to chart in the United Kingdom and Europe, but climbed to number 33 in Australia. "Knock Me Down" reached number six on the U.S. Modern Rock Tracks whereas "Higher Ground" charted at number eleven; the latter of the two ultimately proved to be more successful, however, by influencing foreign charts at number fifty-four in the UK and forty-five in Australia and France. While "Taste the Pain" did not chart in the U.S., the single reached number twenty-six in the UK—the group's first Top 40 single in the region. The success the Red Hot Chili Peppers achieved with Mother's Milk was something the group had been working towards since the release of their debut album; Apter notes, "After five hard years, several departures, sackings and one tragic death, the Peppers were now much more than a hometown sensation." The band had played numerous concerts before the album's release and aired new songs weekly to generate interest in it. Mother's Milk was certified gold by the Recording Industry Association of America in late March 1990—it is now certified platinum—and was the first Chili Peppers album to ship in excess of 500,000 units. In 2003 the album was re-released through EMI; all tracks were completely remastered and an additional six songs were included as well as hand written liner notes from Flea.

Mother's Milk tour and aftermath
Mother's Milk instantly garnered more attention than the band's previous records and, as such, the venues the band performed in were able to accommodate far larger crowds. For the first time the band also upgraded to a full-fledged tour bus and added backup musicians and singers. Longtime friend, Keith "Tree" Barry was added to play horns and backup singers Kristen Vigard and Vicki Calhoun (who appeared in the video for "Knock Me Down") also joined the tour. When the band hit England, roadie Robbie Allen (nicknamed Rob Rule) would open for the band providing a comedy performance in which he would pretend to cut off his own penis. Allen would later become one of the band's backup singers on the One Hot Minute tour. The album's official launch, however, was held in New York City at a club called Tramps; following this, Red Hot Chili Peppers embarked on an introductory European tour which included a free show in Amsterdam's Dam Square that attracted over 10,000 attendees. On September 8, 1989 the band commenced their North American leg in Seattle. The leg saw an overwhelmingly positive response from critics across the country; following a concert in Portland, journalist John Foyston of The Oregonian noted the "Hollywood-based quartet fomented an audience reaction that had to be seen to be believed. The stage-divers started rushing the stage from the moment the band walked on. Once on stage, it was an issue of luck and chutzpah." Todd Caudle of the Colorado Springs newspaper The Gazette said the Chili Peppers' performance at the Colorado Indoor Sports Complex was "the kind of place where kids could be kids, and no one cared if soft drinks stuck to the floor and the rafters shook with a stunning barrage of decibels. People in the audience, steeped in sweat and pressing against the barricade in front of the stage, threw their arms up in unison and barked out approval of one fast, furiously-played song after another."

By the end of the leg, the band members were having trouble adjusting to their newfound fame as virtually every concert on the tour was sold out and Mother's Milk approached 500,000 units sold. Spin reported that following a show in Atlanta, Flea invited a woman to his hotel room for sexual intercourse, but locked himself in the bathroom upon arriving because all he could think of were his wife and daughter. Kiedis ended a two-year long relationship with actress Ione Skye, and Frusciante, looking back on the tour years later, admitted, "I was totally abusing the situation [...] partying and screwing a bunch of girls. At 19, I might have looked like a stud but I was a weakling inside. I wasn't proud of who I was then." Shortly before the end of the North American leg, the band filmed a performance at the Long Beach Arena, which was released as Psychedelic Sexfunk Live from Heaven in 1990. A concert at the San Francisco Civic Auditorium on New Year's Eve 1989 attracted over 10,000 attendees and was considered by band photographer Tony Woolliscroft to be "the biggest [concert] I had seen them play at that point. It gave me a handle on how hard the band had worked in the USA in the years prior to this."

The tour continued in the United Kingdom, where the band was receiving less attention; Kiedis complained after several shows there, "We're huge in the States and it's sort of frustrating and confusing that no one knows who we are here." It was not until after their return from the UK that "Taste the Pain" was released as a single and subsequently charted at number twenty-nine there. In March 1990, the band was asked to perform on MTV's coverage of Spring break in Florida. At the event, Flea and Smith attempted to engage the audience by jumping from the stage; the situation got out of hand, and the two were alleged to have sexually assaulted and verbally abused a female audience member. They were arrested several days later on charges of battery, disorderly conduct and solicitation to commit a lascivious act, but released on $2,000 bail. Smith and Flea's arrest worsened Kiedis's impending charge in Virginia from the "Positive Mental Octopus" tour. He was convicted of sexual battery and indecent exposure and sentenced to pay a fine of $1,000 per charge.

The Chili Peppers wound up the Mother's Milk tour with a variety of performances that included the 1990 Pinkpop Festival and several other large-scale concerts. Once complete, the band rested, and Frusciante and Flea organized a short-lived side project called H.A.T.E. with Fishbone vocalist Angelo Moore and L.A. Guns drummer Nickey Alexander. EMI capitalized on the recent interest in the Chili Peppers by releasing a music video compilation VHS called Positive Mental Octopus, which was named after the tour, in 1990. That same year the band also released "Show Me Your Soul", a song that was originally a b-side on the "Knock Me Down" single, on the soundtrack to the hit romantic comedy film, Pretty Woman. The song was a minor hit for the band and a music video was made. For unknown reasons the band also recorded a cover of the Bachman–Turner Overdrive song, "Takin' Care of Business," however the song would never be released.

25th anniversary
Chad Smith made the announcement on January 29, 2014 that EMI was planning to release a 25th anniversary version of the album sometime in 2014. Smith said some "extra stuff" would be included on the release although it is unknown if the extra material will be unreleased songs or the bonus tracks released on the previously remastered version of the album. In an August 2014 interview with Rolling Stone, Smith discussed the anniversary and legacy of the album saying that a remastered version was still in the works and that he gave the ok to include a live show recorded in Cleveland, Ohio that likely will be a bonus disc. However, he thinks that all of the outtakes from the record have already been released although there might be a few things that the band left unfinished that could be released. , EMI has yet to re-release the album.

DVD

 * The Making of the Album
 * The Videos: Good Time Boys
 * Live Concerts

Personnel
Red Hot Chili Peppers
 * Anthony Kiedis – lead vocals (all tracks except 6 and 10), co-lead vocals (track 4 & 6), art concept
 * John Frusciante – guitar (all tracks except 9), co-lead vocals (track 6), backing vocals
 * Flea – bass, trumpet (tracks 3, 7, 10), backing vocals, co-lead vocals (track 4)
 * Chad Smith – drums (all tracks except 7 and 9), percussion, tambourine
 * Hillel Slovak – guitar (track 9), backing vocals (track 9), back cover painting
 * Jack Irons – drums (track 9)

Additional musicians

 * Philip "Fish" Fisher – drums (track 7)
 * Keith "The Tree" Barry – tenor saxophone (tracks 3, 12)
 * Patrick English – trumpet (track 3)
 * Lon – trombone (track 3)
 * Dave Coleman – cello (track 7)
 * Vicki Calhoun – backing vocals (1, 2, 6, 13)
 * Wag – backing vocals (1, 2)
 * Randy Ruff – backing vocals (1, 2)
 * Aklia Chinn – backing vocals (1, 2, 13)
 * Jack Sherman – backing vocals (1, 2)
 * Joel Virgel Viergel – backing vocals (1, 2)
 * Iris Parker – backing vocals (1, 2)
 * Julie Ritter – backing vocals (1, 2)
 * Gretchen Seager – backing vocals (1, 2)
 * Laure Spinosa – backing vocals (1, 2)
 * Sir Babs – backing vocals (1, 2)
 * Merill Ward – backing vocals (1, 2)
 * Bruno Deron – backing vocals (1, 2)
 * Kristen Vigard – backing vocals (1, 2, 13)

Production

 * Michael Beinhorn – producer, engineer
 * Eddie DeLena – engineer (Engineered "Taste the Pain")
 * Sean Demey – engineer
 * Dave Jerden – mixing
 * Garth Richardson – engineer
 * George Marino – mastering

Design
 * Henry Marquez, Peter Shea – art direction/design
 * Nels Israelson – photography

title: Mother's Milk (album)