I have made available a build of GHC 8.2.2 with the config option:
--disable-large-address-space
You may find this useful if you are using Ubuntu 16.04 on Windows
Subsystem for Linux.
https://github.com/zoominsoftware/ghc-8.2.2-wsl
Although Microsoft has been making gradual progress on the
Joachim, first and foremost, thanks for the awesome libraries
ghc-vis and ghc-heap-view.
The design trade-offs for ghc-vis do make sense if you think of
it as a didactic tool. But as a debugging tool, the most important
factor is that it should "Just Work", with no big builds, no fiddling,
no
I wrote:
>> I need a simple heap visualization for debugging purposes...
>> Vacuum... has some long-outstanding PRs against it...
>> that were never applied...
>> Getting ghc-vis to compile looks hopeless...
>> ghc-heap-view... is there a quick and simple
>> visualizer for its output, without
I need a simple heap visualization for debugging purposes.
I'm using GHC 8.0.2 to compile a large and complex yesod-based
web app. What's the quickest and easiest way?
Vacuum looks simple and nice. But it has some long-outstanding
PRs against it to support GHC 7.10 and GHC 8.0 that were never
I have a module A with no export list, and a function f which from the
API point of view should part of the export list of A. But f must be
defined in module B, not module A, due an import cycle. I added this
line in module A to re-export f from A:
import B as A (f)
This resulted in an unused
Gershom wrote:
...the HaskellWiki ...requires care and maintenance
and contributions from all of us.
I replied to this in the reddit thread at:
http://www.reddit.com/r/haskell/comments/339qxm/haskellcafe_help_wanted_with_wikihaskellorg/
Short summary:
1) Account Creation Management
I
Resurrecting this thread:
My impression was that Edward's suggestion was a simple and
obvious solution to the problem of previous GHC versions quickly
becoming orphaned and unbuildable. But Austin thought that this
thread was stuck.
Would Edward's suggestion be difficult to implement for any
I wrote:
This thread makes it clear what a mess
we have inherited from the days when GHC was primarily a
research compiler. Let's face it - GHC is now also a serious
production compiler, and this urgently needs to be cleaned up.
hvr wrote:
Are you referring to the GMP dependency or something
In order support some older software that we released, we need
to get a working GHC 7.4.2 on Ubuntu Trusty. We currently have
GHC 7.8.3.
The binary tarball for GHC 7.4.2 does not install on Trusty due to
multiple incompatibilities. For example, GHC requires GMP 3, but
Trusty only provides GMP =
I wrote:
How do I get a working GHC 7.4.2 on Trusty?
Thanks to all for the suggestions.
Daniel Trstenjak wrote, off-list:
I can only recommend: https://launchpad.net/~hvr/+archive/ubuntu/ghc
Thanks Daniel! I hadn't looked at Herbert's ppa for a while. Despite
the comments, which say it is
You may need to resort to
strace to find out what's trying to pull in libgmp.so.whatever.
I don't know how to do that. And anyway, I don't have access to
the machine on which the customer is reporting this. I do believe
the report - there is no compilation going on here, they are
only running
We received a complaint from one of our customers that
the Linux executable for one of our products - compiled
using GHC - does not run because of libgmp not being
installed on their server. This binary was compiled using
GHC 7.4.2 (HP 2012.4.0.0). We hope to be migrating soon
to GHC 7.6.3 (HP
Hi Brandon,
Thanks for your response and explanation.
I wrote:
[For] GHC-compiled binaries...
what are the exact requirements we need to communicate
to our customers?
You wrote:
Ideally you would use `ldd` on
binaries to determine other dynamic dependencies
that must be communicated
ldd
Tom Ellis wrote:
Shouldn't it be an *Applicative* constraint?
class Applicative t = ApplicativeIO t where
liftIO :: IO a - t a
and require that
liftIO (pure x) = pure x
liftIO (f * x) = liftIO f * liftIO x
Seems like ApplicativeIO makes more sense than MonadIO, which
Dan Burton wrote:
From what you've said, it sounds like you can already write:
serverSide :: IO a - Form a
This seems elegant enough to me for your needs. Just encourage it as an
idiom specific to Forms.
myBlogForm = Blog $ titleForm * serverSide getCurrentTime *
contentsForm
I had trouble installing the generic 64-bit Linux tarball for 7.6.3.
With some help from Ian, who pointed out that the problem was
related to ld-linux.so, I finally figured out the root of the problem:
the installation requires *both* the 64-bit and 32-bit
versions of libc6 plus deps to be
The mailman daemon process on the server apparently exited
for some reason. I restarted it, and now mail traffic seems to be
going through normally again.
-Yitz
On Sun, May 12, 2013 at 9:21 PM, Carter Schonwald
carter.schonw...@gmail.com wrote:
I've had this problem too. Was trying to sign up
, Tim Docker t...@dockerz.net wrote:
Thanks - I can confirm all is working again. I believe than, within some
time window. some messages may have been dropped.
Tim
On 14/05/13 07:06, Yitzchak Gale wrote:
The mailman daemon process on the server apparently exited
for some reason. I
Johan Tibell wrote:
I suggest that we implement an alternative haddock syntax that's a
superset of Markdown.
Here is a previous thread on this exact topic, from five years ago:
http://www.haskell.org/pipermail/haskell-cafe/2008-February/039846.html
It mentions a few additional shades of
Hi David,
David Thomas wrote:
https://github.com/dlthomas/tzcache
A small bit of code, but seems likely to be useful enough that I figured I
should share.
Thanks for sharing this!
1) Does this already exist somewhere I missed?
I haven't seen it anywhere.
2) It seems silly to make
Adde Nilsson wrote:
Ok, do you know of any way to add/subtract without converting to UTC and
back?
Brandon Allbery wrote:
I'm not sure I'd do that in any environment, since usually libraries don't
deal with the result crossing a daylight/summer time change (and those that
do, surprise
Bryan O'Sullivan wrote:
A substantial number of the difficulties I am encountering are related to
packages specifying upper bounds on their dependencies. This is a recurrent
problem, and its source lies in the recommendations of the PVP itself
I think the PVP recommendation is good, though
Simon Peyton-Jones wrote:
This message is to invite you to send me your favourite example of using a
GADT to get the job done. Ideally I’d like to use examples that are (a)
realistic, drawn from practice (b) compelling and (c) easy to present
without a lot of background.
Last year I
Hi Simon,
First of all, I'm sorry if I'm coming off as too combative,
as Greg says. That is certainly not my intention.
I'm not asking for any free work from you, either.
The only reason I don't like using OverloadedStrings
for typing string literals as Text and ByteString
is that when you turn
Erik Hesselink wrote:
I don't think IsString should be dismissed so easily.
I'm just saying I don't want to be forced to use it.
If others like it, I'm not dismissing it.
we have a couple of newtypes over Text that do different kinds of
normalization. An IsString instance for these is useful
I wrote:
In addition, OverloadedStrings is unsound.
J. Garrett Morris wrote:
fromString can throw errors, just like fromInteger
This is true; the use of polymorphism
for numeric literals is also unsound.
However, in practice, it is rare for there to be
dangerous instances of the numeric type
Greg Weber wrote:
I very much agree with you. However, when we complain about something
essentially we are asking others to prioritize it ahead of other
things. I don't think any more visibility of this issue is going to
improve its prioritization. I suspect your only way forward right now
is
J. Garrett Morris wrote:
By this logic, head is unsound, since head [] throws an error.
Haskell types are pointed; Haskell computations can diverge.
Well, there are those who would actually agree with
that and banish 'head' and friends from the language.
But I'll agree with you here.
[As an
Michael Snoyman wrote:
Here's a theoretically simple solution to the problem. How about
adding a new method to the IsString typeclass:
isValidString :: String - Bool
...whenever GHC applies OverloadedStrings in a case
where the type is fully known at compile time (likely the most common
Markus Läll wrote:
What can go wrong when you use an overloaded string to be fromString'd
into Text?
Here's an example:
The author of the xml-types package provides an IsString
instance for XML names, so you can conveniently
represent XML names as string literals in your source
code.
But not
Simon Peyton-Jones wrote:
If you want validation of literal strings, then TH quasiquotes are the way to
go:
I agree. OverloadedStrings is, in effect, an unsafe replacement
for quasiquotes. People find OverloadedStrings easier to use
than quasiquotes, so its use in that way is becoming popular.
Markus Läll wrote:
You do know, that you already *can* have safe Text and ByteString from
an overloaded string literal.
Yes, the IsString instances for Text and ByteString are safe
(I hope).
But in order to use them, I have to turn on OverloadedStrings.
That could cause other string literals
Daniel Peebles wrote:
Why are potentially partial literals scarier than the fact that every value
in the language could lead to an exception when forced?
That's a legitimate question, but it's strange to hear it from
you.
People ask that same question about Haskell's static
type system. Why
Simon Marlow wrote:
In this thread people are using the term safe to
mean total. We already overload safe too much, might it be a better
idea to use total instead?
I'm not sure what you're talking about. I don't see how
this thread has anything to do with total vs. partial
functions.
I'm
Johan Tibell wrote:
If Chris is indeed out of the loop we should find a new maintainer.
Mark and I are also interested in the future of protocol buffers in
Haskell.
Also, Chris is the maintainer of some regex packages
that are in the Haskell Platform.
-Yitz
Jeremy Shaw wrote:
I have often wished for something like:
{-# LANGUAGE StringLiteralsAs Text #-}
where all string literals like:
f = foo
would be translated to:
f = (fromString foo :: Text)
Agreed, I would also really like this.
I find that OverloadedStrings is too general
Ben Millwood wrote:
No-one's yet argued against OverloadedStrings. I think there /is/ an
argument to be made, that it introduces ambiguity and could break
existing programs (probably we can extend defaulting to take care of
this, but I think there are people who'd be happier if we killed
Pēteris Paikens wrote:
I'm stuck at trying to get Data.Encoding package functional. Cabal
gives the following error message:
This is caused by a problem with the cabal file in the encoding
package. Often it causes the entire GHC package system to
get confused, as pointed out by Brandon.
The
Evan Laforge wrote:
Is there something that changed in 7.4.1 that would cause it to decide
to interpret .hs files instead of loading their .o files? E.g.:
Brandon Allbery wrote:
I thought this was deliberate because the debugger won't work with object
files?
Oh I hope not. I almost never
Yves Parès wrote:
Is there some litterature expliciting in a less empiric way than I did the
differences like this between data and newtype? I've never come against
such documentation through all my learning of Haskell, yet I think it's an
important point.
Roman Cheplyaka wrote:
See the
Bas van Dijk wrote:
What's the recommended way for serializing (with the cereal package) an
UTCTime?
Serialize the Day part as an Integer using
toModifiedJulianDay/ModifiedJulianDay,
(Note that Day is not a constructor, it's just the name of
the type.)
Serialize the DiffTime as a Rational, as
By the way, thanks to Greg for driving this discussion,
please keep up the good work!
Simon Peyton-Jones wrote:
Can you turn your proposal into a Wiki page?
OK I'll try to get to that later today.
It's different to Johan's.
Oh? I didn't realize that. OK, I'll look at it more closely.
I'm
Jason Dagit wrote:
Looks like the repo [1] for the OpenAL bindings that Sven Panne
created [2] is no longer available. I assume this is a result of The
Great Server Outage of 2011 [3].
[1] http://darcs.haskell.org/packages/OpenAL/
[2]
I wrote:
Today, it is very unusual to use GHC by itself.
To use Haskell, you install the Haskell Platform.
That is GHC together with Cabal and a basic
set of libraries. It is very easy to install.
Wolfram Kahl wrote:
However, since you are willing and able to test bleeding-edge versions of
Gershom Bazerman wrote:
Beyond that, it would really help namespacing in general to appropriately
extend the module system to allow multiple modules to be declared within a
single file -- or, better yet, submodules. I know that this introduces a
few corner cases that need to be thought through
Serge D. Mechveliani wrote:
I have ghc-7.4.0.20111219 made from source and tested it on the
DoCon-2.12 application -- thanks to people for their help!
It looks all right.
This was -- with skipping the module Random
Now it remains to add the Random package.
I have taken AC-Random Version
Yves Parès wrote:
(^^ Michael just outposted [1] me).
[1] I don't know if there is such a word. Sorry, I'm french.
If there wasn't before, there is now. It's a great word!
(Et je suis en effet un anglophone.)
-Yitz
___
Haskell-Cafe mailing list
dokondr wrote:
All I actually need
is some way to get *seconds* since epoch from the system, so I could
manipulate them as integers.
Well, you already have that - that's exactly what POSIXTime
is. It is a numerical type, an instance of the RealFrac
class. So perhaps you can do all of your
Gregory Crosswhite wrote:
could we split the some/many methods out from Alternative? They simply
don't make sense except in a subset of possible Alternatives --- in most
cases they just result in an infinite loop...
That is a very good point. I would be in favor of such a
change, even though
dokondr wrote:
When I try to read POSIXTime...
No instance for (Read POSIXTime)...
What should I do to provide Read instance for POSIXTime?
Short answer: if you are thinking about this as a moment
in time that could be parsed from the usual kind of
string representation for that, you probably
Brandon Allbery wrote:
case () of
() | s == reverse s - putStrLn palindrome
_ - putStrLn nope
Tom Murphy wrote:
This is kind of a hack of case, though. I think what the OP was looking
for is
isPalindrome word
| (word == reverse word) = putStrLn (word ++ is a
I wrote:
Yes. The translation of record updates given in the Report
makes perfect sense for {}. It is only forbidden by
n = 1, but no reason is given for that restriction.
d wagner wrote:
It doesn't make sense to me. The translation explodes a value into a case
statement over its
Simon Peyton-Jones wrote:
Trouble is, what type does this have?
f x = x {}
Malcolm Wallace wrote:
Empty record patterns {} are permitted, even for types
that are not declared with named fields.
So I don't see why an empty record update should
require the type to be declared with named
Simon Peyton-Jones wrote:
Trouble is, what type does this have?
f x = x {}
Malcolm Wallace wrote:
f :: a - a
Ian Lynagh wrote:
That wouldn't help the original poster, as it is incompatible with
f :: Foo Clean - Foo Dirty
Only because in that expression the type of x is not known.
Hi Edward,
I started @telling you on #haskell, but it has become
too long for that. :)
The following functions would be nice additions
to Data.List.NonEmpty in the semigroups package:
replicate1p :: Whole n = n - a - NonEmpty a
take1p :: Whole n = n - NonEmpty a - NonEmpty a
splitAt1p :: Whole
I wrote:
The following functions would be nice additions
to Data.List.NonEmpty in the semigroups package...
Here are two more requests:
maximum, minimum :: Ord a = NonEmpty a - a
Two more unsafe Prelude functions become safe!
Thanks,
Yitz
___
Ben Gamari wrote:
Is there a reason why the current version of the timezone-series and
timezone-olson packages depend on time1.3? With time 1.4 being widely
used at this point this will cause conflicts with many packages yet my
tests show that both packages work fine with time 1.4. Could we
Simon Marlow wrote:
It would probably be better to have an abstract FilePath type and to keep
the original bytes, decoding on demand. But that is a big change to the API
and would break much more code. One day we'll do this properly; for now we
have this, which I think is a pretty reasonble
Ben Gamari wrote:
Recently I've been working on an iCalendar parser implementation with
support for recurrence rules.
For the recurrence logic, I've been
relying on Chris Heller's excellent time-recurrence
package.
Unfortunately, it seems we have both encountered great
difficulty in cleanly
I wrote:
This would be nice. However, there would have to be
a way for it to be turned on and off by the author.
(Spam is not nice.)
Ketil Malde wrote:
This is where it stranded the last time, IIRC. That sentiment makes me
a bit uneasy; so you are the official maintainer of a package on
Gregory Crosswhite wrote:
could [Hackage] have a feature where when a
working package breaks with a new version of
GHC the author is automatically e-mailed?
This would be nice. However, there would have to be
a way for it to be turned on and off by the author.
(Spam is not nice.)
Thanks,
Yitz
Eric Y. Kow wrote:
So I'm combining Haskell software with some non-free/closed source work.
I was wondering what sort of effort it would take to organise a blanket
license for everything in the Haskell Platform, and whether it would be
worthwhile to anybody...
- My user is concerned that a
Daniel Fischer wrote:
Just for the record, not a newcomer, and has non-spam
messages
Conrad Parker wrote:
There was a recent hotmail exploit, with people reporting their
account sent spam...
No exploit is needed. It is trivial for an impostor to
seem as if he is sending email from someone
Dmitri wrote:
I need to call Stanford NLP Parser from Haskell
(unfortunately Haskell does not have a similar one)...
Just out of curiosity, why do you not consider GF
at all similar? To an outsider like me, there does
appear to be quite a bit of similarity.
http://www.grammaticalframework.org/
George Giorgidze wrote:
My second proposal is to introduce the
OverloadedLists extension that overloads
list literals...
I am opposed to this proposal as stated.
But I think that with a modification,
it can not only be improved, but also solve
the problems with the current OverloadedStrings
Roman Leshchinskiy wrote:
In general, if we are going to overload list literals then forcing the
desugaring to always go through lists seems wrong to me. There are plenty
of data structures where that might result in a significant performance
hit.
These are literals. So the lists will almost
Thanks for all the great information provided in this thread.
The wiki page that Paulo originally linked had Vasyl's
fantastic documentation for using his hgettext package,
but it did not mention any of the other methods we discussed.
I moved the gettext documentation to its own linked page
and
Chris Smith wrote:
class Ord a = Range a where...
Before adding a completely new Range class, I would suggest
considering Paul Johnson's Ranged-sets package:
http://hackage.haskell.org/package/Ranged-sets
Ranges have many more natural operations, and interactions
with other classes, than you
Evan Laforge wrote:
hex2 = (+)$ ((*16)$ higit)* higit
higit = subtract (fromEnum '0')$ satisfy isHexDigit
color = Color$ hex2* hex2* hex2
Twan van Laarhoven wrote:
How is subtract (fromEnum '0') supposed to convert a hex digit to an Int
or Word8? I think you need digitToInt (or an
Joachim Breitner wrote:
...Usually in Haskell, you’d determine them in the main function and then
pass them in an argument to all functions needing them, or you wrap that
in a monad...
The big downside is the verbosity of the approach: A lot of parameters
need to be passed, and if one such
Brandon Allbery wrote:
Anything useful has to be modified to depend on SemiGroup as well to get
mconcat or its replacement; that's why you jumped the proposal to begin
with
Not at all. Types with Monoid instances need an additional
instance, a Semgroup instance, in order to be able to use
Thanks for the more permissive licenses.
And most of all, thanks for all your great work
on HDBC as maintainer.
Thanks and good luck to Nicolas.
Regards,
Yitz
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
Hi Michael,
Don is no longer involved in planet AFAIK.
The administrator of planet-haskell is
Antti-Juhani Kaijanaho. I'll send you
his email address off list.
Regards,
Yitz
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
I wrote:
Please respond to this thread if you own a package
that will be affected by this change.
Responding to my own request, here are some more
packages that use mkTyCon explicitly:
Ashley Yakeley's time package, which is part of the
Haskell Platform.
My timezone-series package, because it
Jon Fairbairn wrote:
There’ll be a replacement for mkTycon (mkTycon3), so you can
still do manual instances…
Right, it should be easy to fix manual Typeable instances.
It's just that if no action is taken, they will eventually break.
So it's good to make sure that there is public awareness,
and
Simon Marlow has announced[1] on the Haskell Libraries
list that the Typeable class is changing.
The standard way to create a Typeable instance is
just to derive it. If you do that, you will not be affected
by this change.
But it seems that many packages create Typeable
instances by explicitly
I wrote:
Not exactly. A TimeZone in Data.Time doesn't really
represent a time zone - it represents a specific clock setting
in a time zone.
Ashley Yakeley wrote:
I still regret this! I should have called it TimeOffset or somesuch.
Oh, it's not your fault. Every other time library in the
Ashley, heads up! I am CCing you on this message because
I think a problem has been found with Data.Time.Format.
Please see below.
Daniel Patterson wrote:
I've found most of the time library to be quite useful, but
the parsing to be worthless
The API for parsing and rendering time in Data.Time
Joe Healy wrote:
One of the points I found non obvious were the fact that local time is
just that. There is no knowledge of the actual timezone in the data
type. If you wish to store that, it needs to be stored alongside.
Erik Hesselink wrote:
Isn't that what ZonedTime [1] is for?
Not
Oops, forgot the references:
ZoneSeriesTime in the timezone-series package[1]...
To get a TimeZoneSeries, representing a time zone with
all of its known clock changes throughout history and some
years into the future, use the timezone-olson package[2]
Ashley Yakeley wrote:
This was fixed in time-1.2.0.5. From the haddock for parseTime:
Supports the same %-codes as formatTime, including %-, %_ and %0
modifiers.
Great, glad to hear this was recently fixed. I installed
the latest version of the time package, and it works.
It is important to
It was pointed out by Ben Millwood on the Cafe
that there is an undocumented way to escape the
closing oxford bracket of a quasi-quote using
a backslash:
[s|This quasi-quote contains this, \|], an escaped
closing oxford bracket.|]
The backslash itself cannot be escaped in this
way:
[s|Also
Ben Millwood wrote:
I once spent some time and energy making [foo| bar baz |\] quux |] do
the right thing for a quasiquoter I implemented, only to discover that
GHC already supports [foo| bar baz \|] quux |]. So yes, you can escape
it.
Wow, that actually works.
That is very surprising,
Steffen Schuldenzucker wrote:
Btw., does TH parse this correctly? (If I was TH, I would not):
myPHPCode = [s|
?php
$description = Use the quasiquoter like this: [s|some text|];
print $description.\n;
?
|]
(the tricky part is |] occurring in the quoted text)
Can we escape it?
Yes, like
Steffen Schuldenzucker wrote:
* Embed Haskell into some other language is solved by Literate Haskell
* Embed some other language into Haskell is solved by heredocs
Dave Bayer wrote:
Nice pairing. I wrote my own literate preprocessor, which GHC gracefully
accepts, to accomplish both of these
Ryan Ingram wrote:
So this is definitely a GHC bug, but I think the problem is probably
triggered by this line:
instance Serializable a b = IResource a
I don't think this is a valid instance declaration without a functional
dependency on Serializable, as it's impossible to know which type
Daniel Fischer wrote:
No, the instance head is just a type variable, not a type constructor
applied to type variables
Oops, you're right. GHC was telling the truth, I should have
paid closer attention!
Fixing my minimal example, I get:
{-# LANGUAGE MultiParamTypeClasses, UndecidableInstances
Tony Morris wrote:
I recently set out to write a library that required a decent time
library. Having only had a flirt with Data.Time previously, I assumed
it would be robust like many other haskell libraries. I don't know
about consensus, but I have been massively let down. I won't go in to
Dmitri O.Kondratiev wrote:
I have:
ds1 = 10/11/2009 7:04:28 PM
ds2 = 10/17/2009 8:48:29 AM
t1 = readTime defaultTimeLocale %m/%d/%Y %l:%M:%S %p ds1 :: UTCTime
t2 = readTime defaultTimeLocale %m/%d/%Y %l:%M:%S %p ds2 :: UTCTime
dif = diffUTCTime t2 t1
I need to:
1) Find how many complete
Dmitri O.Kondratiev wrote:
It would also help to see a simple example of parsing 10/11/2009 7:04:28
PM to time and date objects.
Let's assume that 10/11/2009 means October 11, as in the U.S.
Then you can use:
import System.Locale (defaultTimeLocale)
import Data.Time
thatMoment :: Maybe
The SIGPLAN Programming Languages Software Award
For 2011, the winners of the award are
Simon Peyton Jones and Simon Marlow of
Microsoft Research, Cambridge, for GHC
Congratulations!
Well deserved recognition for visionary ideas backed by
so many years of hard work.
-Yitz
Bryan O'Sullivan wrote:
Now that I think of it: in principle, you could
write a specialised concat that would check the pointer/offset/length
combinations of its arguments and, if they all abutted perfectly, would just
return a new view into that same array, sans copying.
Gregory Collins
I wrote:
You almost never want to use UndecidableInstances
when writing practical programs in Haskell.
When GHC tells you that you need them, it almost
always means that your types are poorly designed,
usually due to influence from previous experience
with OOP.
wren ng thornton wrote:
Scott Lawrence wrote:
I'm modelling text in a markov-model-like way. I have an actual markov
model (albeit one in which X_n depends on a fixed range X_n-1 ..
X-n-k). I'm vaguely anticipating the presence of other models:
class Model m a | m - a where
lexemes :: m - Set a
genFunc :: m
I wrote:
You almost never want to use UndecidableInstances
when writing practical programs in Haskell.
When GHC tells you that you need them, it almost
always means that your types are poorly designed,
usually due to influence from previous experience
with OOP.
Gábor Lehel wrote:
Are you
Scott Lawrence wrote:
But... this prevents me from storing more information in a Model in the
future. While I don't really anticipate needing too (I can see this
function covering all likely use cases), it does seem sorta restrictive.
I tend not to think about storing information inside of
Scott Lawrence wrote:
type Model a = (Ord a) = Set a -- the set of lexemes
- [a] -- the original text to model
- [a] -- list of previous lexemes
- ProbDist a -- the next lexeme
and then
entropy :: Model a - Set a -
Gregory Collins wrote:
Surprisingly enough, mtl uses UndecidableInstances, so almost every
practical Haskell program uses it in one way or another.
The library uses it, you don't use it directly in your program.
Anyway, transformers does the job when you need to
build on the basic monad
Chris Smith wrote:
I had to abandon a plan
to introduce Haskell in a class I taught this past semester
[12 to 13 years old] because of issues with getting it
installed on the Macintosh laptops that some of
the students had.
Truth is, you obviously don't need support for FFI development
in
The dtd-text package[1] provides a parser and renderer for XML
DTDs. It implements most of the parts of the W3C XML specification
relating to DTDs, and is compatible with versions 1.0 and 1.1 of the
specification.[2] The parser and renderer operate on Haskell DTD
objects from the dtd-types[3]
1 - 100 of 629 matches
Mail list logo