[Haskell] Invitation: AICCSA '06 -- 5th International Workshop on Software Stability: Methodologies, Applications and Tools

2005-11-23 Thread m . fayad
Greetings, You are invited to submit a position paper for this workshop. Enclosed please find the call for papers. Would you please send the following announcement to all possible e-mail lists that you currently have or have access to. I appreciate your publicizing this workshop

[Haskell] postdoc at Oxford

2005-11-23 Thread Oege de Moor
Samson Abramsky, Luke Ong, Tom Melham and myself have just founded the Centre for Metacomputation at Oxford. We are looking for a 4-year senior postdoc to help coordinate the activities: http://web.comlab.ox.ac.uk/oucl/jobs/platform.html Topics of interest include types for quotation,

[Haskell] PADL 2006 Call for Participation

2005-11-23 Thread Logic Programming Rsrch Association
CALL FOR PARTICIPATION CALL FOR PARTICIPATION [ - Apologies for multiple messages; - Deadline for early registration: Dec 15th] Eighth International Symposium on

[Haskell] CFP: IEEE WoWMoM 2006 (Extended Deadline)

2005-11-23 Thread Mainak Chatterjee
We apologize in advance if you receive multiple copies of this CFP. - CALL FOR PAPERS (Extended Submission Deadline) IEEE WOWMOM 2006 The 7th IEEE International Symposium on a World of Wireless, Mobile and

Re: [Haskell] Improvements to GHC

2005-11-23 Thread Stefan Karrmann
My 2 cents: John Lask (Thu, Nov 17, 2005 at 08:57:52AM +1030): I would like to sound out the Haskell community on what the feeling are most desirable to improve the commerciality (i.e. its general use) of ghc and Haskell in general (as distinct from feature set) 3) Macro / conditional

[Haskell] ANNOUNCE: hmp3, an ncurses mp3 player

2005-11-23 Thread Donald Bruce Stewart
hmp3 0.1 : an ncurses mp3 player hmp3 is a lightweight ncurses-based mp3 player written in Haskell. It uses mpg321 or mpg123 as its decoding backend. It is designed to be simple, fast and robust. A screenshot can be found at: http://www.cse.unsw.edu.au/~dons/hmp3.html

Re: Records (was Re: [Haskell] Improvements to GHC)

2005-11-23 Thread Rob Ennals
Hi guys, Since discussion has returned to records, it might be useful for me to post a link to a proposal that I knocked up a while back when this topic came up a few years ago: http://www.cambridge.intel-research.net/~rennals/records.pdf The basic idea is to keep records largely as they are,

[Haskell] Lazy state monads

2005-11-23 Thread Yitzchak Gale
(Moved from the libraries list to the haskell list.) I wrote: createItems :: RandomGen g = State g [Item] createItems = liftM catMaybes $ runListT $ flip evalStateT initialState $ runMaybeT $ do item - liftRandom $ repeatM randomItem updateState item

Re: Records (was Re: [Haskell] Improvements to GHC)

2005-11-23 Thread David Roundy
On Tue, Nov 22, 2005 at 02:32:47PM +, Rob Ennals wrote: Since discussion has returned to records, it might be useful for me to post a link to a proposal that I knocked up a while back when this topic came up a few years ago: http://www.cambridge.intel-research.net/~rennals/records.pdf

Re: Records (was Re: [Haskell] Improvements to GHC)

2005-11-23 Thread Malcolm Wallace
David Roundy [EMAIL PROTECTED] writes: 7. Unordered records: yep (if I understand the problem correctly) I don't think you understood correctly. What I'd like (and this is another one of those David-specific issues--I've never heard anyone else complain about this) is to be able to create

Re: Records (was Re: [Haskell] Improvements to GHC)

2005-11-23 Thread Wolfgang Jeltsch
Am Mittwoch, 23. November 2005 14:22 schrieb David Roundy: On Tue, Nov 22, 2005 at 02:32:47PM +, Rob Ennals wrote: [...] 7. Unordered records: yep (if I understand the problem correctly) I don't think you understood correctly. What I'd like (and this is another one of those

[Haskell] Broken monad laws

2005-11-23 Thread Iavor Diatchki
Hello, I just noticed that the GHC/Hugs standard libraries have acquired a list monad transformer, which is broken, because it does not satisfy the associativity law when applied to non-commutative monads. I am not referring to some corner-case strictness problem, but rather a fairly well known

Re[2]: Records (was Re: [Haskell] Improvements to GHC)

2005-11-23 Thread Bulat Ziganshin
Hello David, Wednesday, November 23, 2005, 4:22:47 PM, you wrote: 7. Unordered records: yep (if I understand the problem correctly) DR I don't think you understood correctly. What I'd like (and this is another DR one of those David-specific issues--I've never heard anyone else complain DR

Re: [Haskell] Broken monad laws

2005-11-23 Thread Sean Seefried
On 24/11/2005, at 9:45 AM, Iavor Diatchki wrote: Hello, I just noticed that the GHC/Hugs standard libraries have acquired a list monad transformer, which is broken, because it does not satisfy the associativity law when applied to non-commutative monads. I am not referring to some corner-case

Re: [Haskell] ANNOUNCE: Frag: a First Person Shooting game

2005-11-23 Thread Jens Petersen
Mun Hon Cheong wrote: Frag is a 3D First Person Shooting game. Thanks for releasing this! It built fine for me with ghc-6.4.1 on Fedora Core 4 x86_64, but when I run it I get: frag% ./a.out leveleg : : loaded textures/egyptians/sand_egy.tga loaded textures/egyptians/leaf.tga loaded

[ ghc-Bugs-1363942 ] nativeGen/MachRegs.lhs:1016: parse error

2005-11-23 Thread SourceForge.net
Bugs item #1363942, was opened at 2005-11-22 16:22 Message generated for change (Comment added) made by simonmar You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=108032aid=1363942group_id=8032 Please note that this message will contain a full copy of the comment

[ ghc-Bugs-1364837 ] AdjustorAsm.S doesn't build on AIX

2005-11-23 Thread SourceForge.net
Bugs item #1364837, was opened at 2005-11-23 12:09 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=108032aid=1364837group_id=8032 Please note that this message will contain a full copy of

[ ghc-Bugs-1364839 ] Cabal tries to build ghci libraries on install

2005-11-23 Thread SourceForge.net
Bugs item #1364839, was opened at 2005-11-23 12:11 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=108032aid=1364839group_id=8032 Please note that this message will contain a full copy of

RE: GHC targetting Java?

2005-11-23 Thread Simon Peyton-Jones
| On a similar note, how about the .NET support? Can it work on a | platform where the only .NET support is Mono? This comes up regularly. Here's my message from Jan: http://www.haskell.org/pipermail/glasgow-haskell-users/2005-January/0075 94.html Simon === It'd make

RE: adding to GHC/win32 Handle operations support of Unicode filenamesand files larger than 4 GB

2005-11-23 Thread Simon Marlow
This sounds like a good idea to me. As far as possible, we should keep the platform-dependence restricted to the implementation of one module (System.Posix.Internals will do, even though this isn't really POSIX any more). So System.Posix.Internals exports the CFilePath/CFileOffset types, and the

RE: Patch: Add support for using --mk-dll with --make

2005-11-23 Thread Simon Marlow
On 21 November 2005 22:03, Esa Ilari Vuokko wrote: Attached small simple patch that allows using --mk-dll with --make. Behaviour before patch was to link .exe instead .dll, as batchmode simply called staticLink - now doMkDLL is called instead. * Add support for using --mk-dll with --make

RE: Problems with 6.x compilers

2005-11-23 Thread Simon Marlow
On 22 November 2005 17:18, Michael Marte wrote: I am having some annoying problems with the 6.x compilers: 6.4 and 6.4.1: When repeating a build (with ghc --make) all modules are rebuild even if nothing has changed. With earlier compilers, only linking takes place in this setting.

RE: GHC targetting Java?

2005-11-23 Thread Simon Marlow
On 23 November 2005 09:32, Simon Peyton-Jones wrote: On a similar note, how about the .NET support? Can it work on a platform where the only .NET support is Mono? This comes up regularly. Here's my message from Jan: http://www.haskell.org/pipermail/glasgow-haskell-users/2005-January/0075

Re: Problems with 6.x compilers

2005-11-23 Thread kahl
6.4 and 6.4.1: When repeating a build (with ghc --make) all modules are rebuild even if nothing has changed. With earlier compilers, only linking takes place in this setting. Can I change this behaviour? I cannot develop this way. Should not happen, if it does there

RE: Problems with 6.x compilers

2005-11-23 Thread Michael Marte
Simon, On Wed, 23 Nov 2005, Simon Marlow wrote: On 22 November 2005 17:18, Michael Marte wrote: I am having some annoying problems with the 6.x compilers: 6.4 and 6.4.1: When repeating a build (with ghc --make) all modules are rebuild even if nothing has changed. With earlier

Checking for WHNF (a horrible naughty thing)

2005-11-23 Thread Jan-Willem Maessen
I would like to do a horrible naughty thing (which I promise never to expose to the world). I would like to tell whether a term is in WHNF, without forcing evaluation of that term. Something like: isWHNF :: a - Bool Is there a way of doing this? I can fake it with an IORef and much

problem using ghc-6.5.20051122-i386-unknown-linux.tar.bz2

2005-11-23 Thread Konovalov, Vadim
I downloaded ghc-6.5.20051122-i386-unknown-linux.tar.bz2 and tried to use it (as bootstrap for building Haskell at first, but building Pugs fails the same way) It installed fine. My attempts to compile something with it result with a following error: ghc-6.5.20051122: could not execute:

Re: Checking for WHNF (a horrible naughty thing)

2005-11-23 Thread Sigbjorn Finne
The appended snippet might help.. --sigbjorn -- whnf.hs import Foreign.StablePtr import System.IO.Unsafe isWHNF :: a - Bool isWHNF a = unsafePerformIO $ do stl - newStablePtr a rc - isWhnf stl freeStablePtr stl return (rc /= 0) foreign import ccall safe isWhnf isWhnf :: StablePtr a -

Re[2]: Patch for Word64

2005-11-23 Thread Bulat Ziganshin
Hello Simon, Wednesday, November 23, 2005, 2:28:26 PM, you wrote: SM int64ToWord64# = unsafeCoerce# SM word64ToInt64# = unsafeCoerce# SM this should reduce the cost of the conversions to zero, which is a SM simpler way to fix the performance bug (if it works). SM If you confirm that this

Re[2]: adding to GHC/win32 Handle operations support of Unicode filenamesand files larger than 4 GB

2005-11-23 Thread Bulat Ziganshin
Hello Simon, Wednesday, November 23, 2005, 2:22:02 PM, you wrote: SM This sounds like a good idea to me. SM As far as possible, we should keep the platform-dependence restricted to SM the implementation of one module (System.Posix.Internals will do, even SM though this isn't really POSIX any

GHC 6.6

2005-11-23 Thread Jim Apple
Help build the anticipation: http://haskell.org/hawiki/GHC_206_2e6 Present text: GHC 6.6: Will be out before May 2006. Included: * Parallel GHC * Associated types with class Maybe: * Impredicativity * GADT Typeclass interaction * Data types as kinds No: Jim

Re: Patch for Word64

2005-11-23 Thread Matt
Bulat Ziganshin wrote: Hello Simon, Wednesday, November 23, 2005, 2:28:26 PM, you wrote: int64ToWord64# = unsafeCoerce# word64ToInt64# = unsafeCoerce# this should reduce the cost of the conversions to zero, which is a simpler way to fix the performance bug (if it works). If you

RE: [Haskell-cafe] GHCi always optimizes?

2005-11-23 Thread Simon Peyton-Jones
| Anyway, it's strange that you are experiencing crashes. IIRC, there | were problems if you mixed modules compiled with different levels of | optimisation in the same program, but I am not sure it still happens. If you can make a reproducible crash, please tar it up and send it to us. It

RE: Re[2]: [Haskell-cafe] using of data types as kinds

2005-11-23 Thread Simon Peyton-Jones
Sorry should be fixed now (or shortly when the mirror does its stuff) Simon | -Original Message- | From: Bulat Ziganshin [mailto:[EMAIL PROTECTED] | Sent: 22 November 2005 19:28 | To: Simon Peyton-Jones | Cc: haskell-cafe@haskell.org | Subject: Re[2]: [Haskell-cafe] using of data types

[Haskell-cafe] questions on lazy pattern, StateT monad

2005-11-23 Thread Fan Wu
Hi Haskell gurus, I'm very puzzled on some code I saw in GHC Monad.StateT (which is about state monad transformers) source and hope you can kindly give me some insight into this. newtype StateT s m a = S (s - m (a,s)) instance MonadPlus m = MonadPlus (StateT s m) where mzero =

[Haskell-cafe] Re: Frag: a First Person Shooting game

2005-11-23 Thread Mun Hon Cheong
Did you encounter any difficulties in your development because of Haskell? Well, Haskell is different compared with other languages like C. I thought collision detection would be easier if i could use some local or global variables, but i managed to get around it. Was lazy evaluation ever a

[Haskell-cafe] Re: Records vs HList

2005-11-23 Thread Keean Schupke
David Menendez wrote: Keean Schupke writes: David Menendez wrote: Chris Kuklewicz writes: Would the record system describe at http://lambda-the-ultimate.org/node/view/1119 also be convertable into System Fw, GHC's existing, strongly-typeed intermediate language. ?

Re: [Haskell-cafe] Function application like a Unix pipe

2005-11-23 Thread Udo Stenzel
Scherrer, Chad wrote: Maybe my point wasn't clear. Of course this idea of comparing lazy evaluation to Unix pipes is very old (long before July 2004, I'm sure). The point I'm making is that there is an old idea that may be underused. It is, and only because (.) is defined all wrong! The unix

Re: [Haskell-cafe] Function application like a Unix pipe

2005-11-23 Thread Tomasz Zielonka
On Wed, Nov 23, 2005 at 11:17:25AM +0100, Udo Stenzel wrote: infixl 2 \| (\|) = flip (.) -- though I'm using () The unix pipe becomes (filter (foo `isPrefixOf`) \| sort \| nub) or something, which is rather neat, and (#) is used to call member functions, as in Why not use Control.Arrow. ?

Re: [Haskell-cafe] Function application like a Unix pipe

2005-11-23 Thread Henning Thielemann
On Wed, 23 Nov 2005, Udo Stenzel wrote: Scherrer, Chad wrote: Maybe my point wasn't clear. Of course this idea of comparing lazy evaluation to Unix pipes is very old (long before July 2004, I'm sure). The point I'm making is that there is an old idea that may be underused. It is, and only

Re: [Haskell-cafe] questions on lazy pattern, StateT monad

2005-11-23 Thread Wolfgang Jeltsch
Am Mittwoch, 23. November 2005 10:03 schrieb Fan Wu: [...] I'm puzzled over this line: ~(a,s') - lift (mplus m1' m2') Why is this line in Monad.State.StateT? Recently, we discussed that StateT does *not* use a lazy pattern here but that it should be changed to using one. So where did

RE: [Haskell-cafe] Spurious program crashes

2005-11-23 Thread Simon Marlow
On 21 November 2005 16:43, Joel Reymont wrote: I'm being quite careful with resources these days. The outstanding issues are 1) Crashes on Mac OSX that are not reproduced on Linux, Windows, etc. 2) Some kind of a problem with Chan. getChanContents retrieves things smoothly, readChan only

Re: [Haskell-cafe] Spurious program crashes

2005-11-23 Thread Joel Reymont
On Nov 23, 2005, at 1:18 PM, Simon Marlow wrote: After subsequent dicsussion, do you still think something strange was going on here? Yes, but in a different thread. The Postmortem one. so this basically loops until there are no messages in the channel, and then exits. Is that what you

RE: [Haskell-cafe] Spurious program crashes

2005-11-23 Thread Simon Marlow
On 23 November 2005 13:29, Joel Reymont wrote: On Nov 23, 2005, at 1:18 PM, Simon Marlow wrote: After subsequent dicsussion, do you still think something strange was going on here? Yes, but in a different thread. The Postmortem one. so this basically loops until there are no messages

[Haskell-cafe] Uses forkOS all CPUS on-board?

2005-11-23 Thread Dusan Kolar
Hello haskellers, in past few days, a lot of stuff on concurrency went through the conference. I'm trying to use posted things and my own. They work, even in a context switching regime, but I can't exploit all the CPU's on my computer. Always is active just one thread and, thus, the computation

Re: [Haskell-cafe] Uses forkOS all CPUS on-board?

2005-11-23 Thread Sebastian Sylvan
On 11/23/05, Dusan Kolar [EMAIL PROTECTED] wrote: Hello haskellers, in past few days, a lot of stuff on concurrency went through the conference. I'm trying to use posted things and my own. They work, even in a context switching regime, but I can't exploit all the CPU's on my computer.

RE: [Haskell-cafe] Function application like a Unix pipe

2005-11-23 Thread Scherrer, Chad
Henning Thielemann [EMAIL PROTECTED] writes: Since (a . b) x a $ b x a (b x) are equivalent, do you also want to reverse function and argument in order to match argument order of . and $ ? That is x (b . a) x b $ a (x b) a ? I'm sorry, I'm not sure I understand your

RE: [Haskell-cafe] Function application like a Unix pipe

2005-11-23 Thread Henning Thielemann
On Wed, 23 Nov 2005, Scherrer, Chad wrote: Henning Thielemann [EMAIL PROTECTED] writes: Since (a . b) x a $ b x a (b x) are equivalent, do you also want to reverse function and argument in order to match argument order of . and $ ? That is x (b . a) x b $ a (x b) a ? I'm

RE: [Haskell-cafe] Function application like a Unix pipe

2005-11-23 Thread Scherrer, Chad
Henning Thielemann [EMAIL PROTECTED] writes: I want to say, that the order of symbols for ($), (.) and function application is consistent. This is a fine thing. I think that shall not be distroyed by giving ($) and (.) reversed argument order. I see. I like the argument order also,

RE: [Haskell-cafe] Function application like a Unix pipe

2005-11-23 Thread Scherrer, Chad
Udo Stenzel [EMAIL PROTECTED] writes: The unix pipe is actually function composition. Its argument (standard input) isn't explicitly mentioned Then it seems Unix must overload the | operator. I typically use it to do things like grep . *.hs | wc So I think of the types as being grep .

Re: [Haskell-cafe] Function application like a Unix pipe

2005-11-23 Thread Tomasz Zielonka
On Wed, Nov 23, 2005 at 09:01:07AM -0800, Scherrer, Chad wrote: So I think of the types as being grep . *.hs :: String wc :: String - Int -- ok, not really, but it shows the point better. Every unix program has a standard input, even if it doesn't use it, so I would rather give this type to

Re: [Haskell-cafe] questions on lazy pattern, StateT monad

2005-11-23 Thread Fan Wu
HI Wolfgang, The code is from GHC source ghc-6.4.1/libraries/monads/Monad/StateT.hs, am I looking at the wrong place? I found the thread discussing Monad strictness, where is your StateT defined? But it is still not clear to me why lazy pattern is used here. Any ideas? Thanks, Fan On

Re: [Haskell-cafe] GHCi always optimizes?

2005-11-23 Thread Tomasz Zielonka
On Wed, Nov 23, 2005 at 08:48:04AM -, Simon Peyton-Jones wrote: | Anyway, it's strange that you are experiencing crashes. IIRC, there | were problems if you mixed modules compiled with different levels of | optimisation in the same program, but I am not sure it still happens. If you can

RE: [Haskell-cafe] Function application like a Unix pipe

2005-11-23 Thread Bill Wood
On Wed, 2005-11-23 at 08:55 -0800, Scherrer, Chad wrote: . . . I see. I like the argument order also, since it so nicely reflects mathematical notation. But I do think there's a place for (flip ($)) and (flip (.)). The problem is that the assignment of fixities is much more subtle and

Re: [Haskell-cafe] questions on lazy pattern, StateT monad

2005-11-23 Thread Wolfgang Jeltsch
Am Mittwoch, 23. November 2005 19:02 schrieb Fan Wu: HI Wolfgang, The code is from GHC source ghc-6.4.1/libraries/monads/Monad/StateT.hs, am I looking at the wrong place? I found the thread discussing Monad strictness, where is your StateT defined? Hello Fan, the GHC source is just where

RE: [Haskell-cafe] Function application like a Unix pipe

2005-11-23 Thread Bill Wood
On Wed, 2005-11-23 at 17:47 +0100, Henning Thielemann wrote: . . . Why is there no () and why is (=) not the default? The order of 'do {a;b;c}' is compatible with that of (). So we have the fundamental conflict, that usually function application is from right to left, but interpreting

Re: [Haskell-cafe] questions on lazy pattern, StateT monad

2005-11-23 Thread Andrew Pimlott
On Wed, Nov 23, 2005 at 02:03:22AM -0700, Fan Wu wrote: instance MonadPlus m = MonadPlus (StateT s m) where mzero = lift mzero mplus m1 m2 = do s - peek let m1' = runState s m1 m2' = runState s m2

Re: [Haskell-cafe] questions on lazy pattern, StateT monad

2005-11-23 Thread Fan Wu
Hi Wolfgang, Thanks for your response and examples! It helps a lot. From your example I can see Lazy patterns are useful in contexts where infinite data structures are being defined recursively (quote section 4.4 of Gentle Introduction to Haskell). But does it apply to the mplus case? I mean the

Re: [Haskell-cafe] questions on lazy pattern, StateT monad

2005-11-23 Thread David Menendez
Wolfgang Jeltsch writes: If we use an implementation of State *without lazy patterns*, it becomes something like this: \s - case next s of (x,s') - case everyting s' of (xs,s'') - ((x : xs),s'') Note that I used case expressions to realize strict patterns

[Haskell-cafe] Problem over Context Free Grammar Transitive Closure Algorithm

2005-11-23 Thread Victor Silva
Folks this is a parser for Context Free Grammars, for some reason when I go simplify the grammar trying to remove productions that substitute variables like in the case: S - A, A - B, B - a, it works perfectly and returns S - a, the problem is when the root symbol is on the listthat must be

Re[2]: [Haskell-cafe] Uses forkOS all CPUS on-board?

2005-11-23 Thread Bulat Ziganshin
Hello Sebastian, Wednesday, November 23, 2005, 6:46:54 PM, you wrote: They work, even in a context switching regime, but I can't exploit all the CPU's on my computer. Always is active just one thread SS Did you compile it with -threaded? this will not help. multi-processing support will be

[Haskell-cafe] Re: Re[2]: Uses forkOS all CPUS on-board?

2005-11-23 Thread Shae Matijs Erisson
Bulat Ziganshin [EMAIL PROTECTED] writes: They work, even in a context switching regime, but I can't exploit all the CPU's on my computer. Always is active just one thread this will not help. multi-processing support will be added in GHC 6.6, which must roll out due 6 months, as HCAR says

[Haskell-cafe] Re: Records vs HList

2005-11-23 Thread David Menendez
Keean Schupke writes: HList can do O(log n) by the way, if the labels have order, you can implement a binary search tree of labels (Of course all the accessor functions would need to be rewritten). The idea of writing a type-level balanced binary search tree fills me with an uncertain mixture

Re: [Haskell-cafe] Function application like a Unix pipe

2005-11-23 Thread Cale Gibbard
On 23/11/05, Scherrer, Chad [EMAIL PROTECTED] wrote: Bill Wood [EMAIL PROTECTED] writes: Interesting note: in Richard Bird and Oege de Moor, _Algebra of Programming_, pp. 2-3, the authors write As a departure from tradition, we write f : A - B rather than f : B - A to indicate

Re: [Haskell-cafe] Function application like a Unix pipe

2005-11-23 Thread Bill Wood
On Wed, 2005-11-23 at 21:21 -0500, Cale Gibbard wrote: . . . Hmm, which edition? My copy (5th ed.) uses the ordinary notation: f(x). x f does perhaps make more sense, especially with the current categorical view of functions, but there would have to be a really hugely good reason to

Re: [Haskell-cafe] Function application like a Unix pipe

2005-11-23 Thread jerzy . karczmarczuk
Cale Gibbard: x f does perhaps make more sense, especially with the current categorical view of functions, but there would have to be a really hugely good reason to change notation, as almost all current work puts things the other way around. Almost all? Well, excluding the Smalltalkers,

Re: [Haskell-cafe] Function application like a Unix pipe

2005-11-23 Thread Cale Gibbard
On 24/11/05, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: Cale Gibbard: x f does perhaps make more sense, especially with the current categorical view of functions, but there would have to be a really hugely good reason to change notation, as almost all current work puts things the other