<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Thanks, <br>
      <br>
      I see the problem.<br>
      I m trying to push too much in a function.<br>
      <br>
      I see that in Haskell that a function does really 1 thing so I
      function for checking the format and another for making the right
      output. <br>
      <br>
      Roelof<br>
      <br>
      Alex Hammel schreef op 23-2-2015 om 21:52:<br>
    </div>
    <blockquote
cite="mid:CA+_xFepD5iK1J8GuWpgU3b-=EOPE_J=cLsaC=mbo1BaO82Rc1g@mail.gmail.com"
      type="cite">
      <div dir="ltr">Perhaps you could split up the format checking and
        the unpacking into two different functions:<br>
        <br>
        parseMessage :: String -> String<br>
        parseMessage s = go (words s)<br>
            where<br>
                go log = if isValid log<br>
                         then parse log<br>
                         else "false"<br>
        <br>
                parse ("I":time:msg) = "Info"<br>
                parse ("W":time:msg) = -- etc.<br>
        <br>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Mon, Feb 23, 2015 at 12:39 PM,
          Roelof Wobben <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:r.wobben@home.nl" target="_blank">r.wobben@home.nl</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div bgcolor="#FFFFFF" text="#000000">
              <div>Oke, <br>
                <br>
                But then I do not check on the I  <br>
                Sorry for being difficult. <br>
                <br>
                Roelof<br>
                <br>
                <br>
                <br>
                Alex Hammel schreef op 23-2-2015 om 21:33:<br>
              </div>
              <div>
                <div class="h5">
                  <blockquote type="cite">
                    <div dir="ltr">For that you need a guard:<br>
                      <br>
                      parseMessage :: String -> String<br>
                      parseMessage s = go (words s)<br>
                          where<br>
                              go logMessage<br>
                                  | isValid logMessage = doSomething<br>
                                  | otherwise          = "false"<br>
                      <br>
                    </div>
                    <div class="gmail_extra"><br>
                      <div class="gmail_quote">On Mon, Feb 23, 2015 at
                        12:30 PM, Roelof Wobben <span dir="ltr"><<a
                            moz-do-not-send="true"
                            href="mailto:r.wobben@home.nl"
                            target="_blank">r.wobben@home.nl</a>></span>
                        wrote:<br>
                        <blockquote class="gmail_quote" style="margin:0
                          0 0 .8ex;border-left:1px #ccc
                          solid;padding-left:1ex">
                          <div bgcolor="#FFFFFF" text="#000000">
                            <div>Thanks, <br>
                              <br>
                              Can I somehow also test if the string is
                              valid so that the isvalid  function is
                              used. <br>
                              <br>
                              Roelof<br>
                              <br>
                              Alex Hammel schreef op 23-2-2015 om 21:23:<br>
                            </div>
                            <div>
                              <div>
                                <blockquote type="cite">
                                  <div dir="ltr">You can pattern match
                                    on string literals:<br>
                                    <br>
                                    parseMessage :: String -> String<br>
                                    parseMessage s = go (words s)<br>
                                        where<br>
                                            go ("I":_:_) = "Info"<br>
                                            go _         = "false"<br>
                                    <br>
                                    <br>
                                    You don't need to call it "go2",
                                    btw. Functions in where-blocks don't
                                    leak into the global scope, so
                                    there's no conflict with the `go` in
                                    your other function.<br>
                                    <br>
                                  </div>
                                  <div class="gmail_extra"><br>
                                    <div class="gmail_quote">On Mon, Feb
                                      23, 2015 at 12:15 PM, Roelof
                                      Wobben <span dir="ltr"><<a
                                          moz-do-not-send="true"
                                          href="mailto:r.wobben@home.nl"
                                          target="_blank">r.wobben@home.nl</a>></span>
                                      wrote:<br>
                                      <blockquote class="gmail_quote"
                                        style="margin:0 0 0
                                        .8ex;border-left:1px #ccc
                                        solid;padding-left:1ex">
                                        <div bgcolor="#FFFFFF"
                                          text="#000000">
                                          <div>Sorry ,<br>
                                            <br>
                                            I cannot change that
                                            function. I have to use it,
                                            <br>
                                            <br>
                                            But I think I found a
                                            solution for a step earlier,
                                            <br>
                                            <br>
                                            To parse a line and change
                                            it to another line which
                                            will be a member of
                                            LogMessage : <br>
                                            <span> <br>
                                              -- | Main entry point to
                                              the application.<br>
                                              {-# OPTIONS_GHC -Wall #-}<br>
                                              <br>
                                              module LogAnalysis where<br>
                                              <br>
                                              import Data.Char
                                              (isLetter, isDigit)<br>
                                              <br>
                                              isValid :: String ->
                                              Bool<br>
                                              isValid s = go (words s)<br>
                                                  where<br>
                                                    go ([a]:b:_) =
                                              isLetter a && all
                                              isDigit b<br>
                                                    go _         = False<br>
                                              <br>
                                            </span> parseMessage ::
                                            String -> String<br>
                                            parseMessage s = go2 (words
                                            s) <br>
                                                where <br>
                                                    go2 (a:_:_) =  case
                                            a of<br>
                                                                        
                                            "I" -> "Info "<br>
                                                                        
                                            _ -> "False"<br>
                                                                       <br>
                                                    go2 _         =
                                            "false"<span><br>
                                              <br>
                                               <br>
                                              -- | The main entry point.<br>
                                              main :: IO ()<br>
                                              main = do<br>
                                            </span>     putStrLn $
                                            parseMessage "I 656 He
                                            trusts to you to set them
                                            free,"<br>
                                            <br>
                                            <br>
                                            <br>
                                            But I feels wierd, to use
                                            first a pattern matching and
                                            later do a case of.<br>
                                            Is this a good way or are
                                            there better ways, <br>
                                            <br>
                                            Roelfo<br>
                                            <br>
                                            <br>
                                            <br>
                                            Alex Hammel schreef op
                                            23-2-2015 om 21:01:<br>
                                          </div>
                                          <div>
                                            <div>
                                              <blockquote type="cite">
                                                <div dir="ltr">Constructors
                                                  with names like
                                                  'Unknown' are a code
                                                  smell, IMO. I'd just
                                                  define the data type
                                                  like this:<br>
                                                  <br>
                                                  data LogMessage =
                                                  LogMessage MessageType
                                                  TimeStamp String<br>
                                                  <br>
                                                  and use `Either String
                                                  LogMessage` in
                                                  contexts where parsing
                                                  can fail:<br>
                                                  <br>
                                                  parseLogEntry ::
                                                  String -> Either
                                                  String LogMesage<br>
                                                  parseLogEntry str<br>
                                                    | isValid str =
                                                  Right $ mkLogMessage
                                                  str<br>
                                                    | otherwise = Left $
                                                  "Poorly-formatted log
                                                  entry: " ++ str<br>
                                                  <br>
                                                  As for implementing
                                                  mkLogMessage: you
                                                  already know how to
                                                  unpack the parts of a
                                                  log message with
                                                  `words` and pattern
                                                  matching. After that
                                                  it's just a matter of
                                                  type-casting
                                                  everything correctly
                                                  and passing it to the
                                                  `LogMessage`
                                                  constructor.<br>
                                                </div>
                                                <div class="gmail_extra"><br>
                                                  <div
                                                    class="gmail_quote">On
                                                    Mon, Feb 23, 2015 at
                                                    10:14 AM, Roelof
                                                    Wobben <span
                                                      dir="ltr"><<a
                                                        moz-do-not-send="true"
href="mailto:r.wobben@home.nl" target="_blank">r.wobben@home.nl</a>></span>
                                                    wrote:<br>
                                                    <blockquote
                                                      class="gmail_quote"
                                                      style="margin:0 0
                                                      0
                                                      .8ex;border-left:1px
                                                      #ccc
                                                      solid;padding-left:1ex">
                                                      <div
                                                        bgcolor="#FFFFFF"
                                                        text="#000000">
                                                        <div>Thanks, <br>
                                                          <br>
                                                          This works  :
                                                          <br>
                                                          <span> <br>
                                                          -- | Main
                                                          entry point to
                                                          the
                                                          application.<br>
                                                          {-#
                                                          OPTIONS_GHC
                                                          -Wall #-}<br>
                                                          <br>
                                                          module
                                                          LogAnalysis
                                                          where<br>
                                                          <br>
                                                          </span><span>
                                                          import
                                                          Data.Char
                                                          (isLetter,
                                                          isDigit)<br>
                                                          <br>
                                                          isValid ::
                                                          String ->
                                                          Bool<br>
                                                          isValid s = go
                                                          (words s)<br>
                                                              where<br>
                                                                go
                                                          ([a]:b:_) =
                                                          isLetter a
                                                          && all
                                                          isDigit b<br>
                                                                go
                                                          _         =
                                                          False<br>
                                                          <br>
                                                              <br>
                                                          -- | The main
                                                          entry point.<br>
                                                          main :: IO ()<br>
                                                          main = do<br>
                                                          </span>    
                                                          putStrLn $ (
                                                          show (isValid
                                                          "I 656 He
                                                          trusts to you
                                                          to set them
                                                          free,"))<br>
                                                          <br>
                                                          <br>
                                                          Now I have to
                                                          ty to find out
                                                          how I can
                                                          check if a has
                                                          the contents
                                                          of I/W/E and
                                                          how to make
                                                          the right
                                                          output 
                                                          (Error/Warning/Info 
                                                          22)   " Text"
                                                          ) <br>
                                                          and then make
                                                          it work with
                                                          this datatype
                                                          : <br>
                                                          <br>
                                                          data
                                                          LogMessage =
                                                          LogMessage
                                                          MessageType
                                                          TimeStamp
                                                          String<br>
                                                                         
                                                          | Unknown
                                                          String<br>
                                                            deriving
                                                          (Show, Eq)<br>
                                                          <br>
                                                          Roelof<br>
                                                          <br>
                                                          Konstantine
                                                          Rybnikov
                                                          schreef op
                                                          23-2-2015 om
                                                          18:49:<br>
                                                        </div>
                                                        <div>
                                                          <div>
                                                          <blockquote
                                                          type="cite">
                                                          <div dir="ltr">
                                                          <div>
                                                          <div>
                                                          <div>
                                                          <div>As Alex
                                                          mentioned,
                                                          isValid
                                                          returns Bool,
                                                          while type for
                                                          putStrLn is
                                                          `String ->
                                                          IO ()`. So, in
                                                          order to print
                                                          something of
                                                          type Bool, you
                                                          need to first
                                                          convert it to
                                                          String. For
                                                          example, via a
                                                          function
                                                          `show`:<br>
                                                          <br>
                                                          </div>
                                                          putStrLn (show
                                                          True)<br>
                                                          <br>
                                                          </div>
                                                          As Alex
                                                          mentioned,
                                                          there's a
                                                          `print`
                                                          function,
                                                          which does
                                                          exactly this:<br>
                                                          <br>
                                                          </div>
                                                          print x =
                                                          putStrLn (show
                                                          x)<br>
                                                          <br>
                                                          </div>
                                                          You can use
                                                          it.<br>
                                                          </div>
                                                          <div
                                                          class="gmail_extra"><br>
                                                          <div
                                                          class="gmail_quote">On

                                                          Mon, Feb 23,
                                                          2015 at 7:19
                                                          PM, Roelof
                                                          Wobben <span
                                                          dir="ltr"><<a
moz-do-not-send="true" href="mailto:r.wobben@home.nl" target="_blank">r.wobben@home.nl</a>></span>
                                                          wrote:<br>
                                                          <blockquote
                                                          class="gmail_quote"
                                                          style="margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div
                                                          bgcolor="#FFFFFF"
                                                          text="#000000">
                                                          <div>And when
                                                          Im trying
                                                          this: <br>
                                                          <span> <br>
                                                          {-#
                                                          OPTIONS_GHC
                                                          -Wall #-}<br>
                                                          <br>
                                                          module
                                                          LogAnalysis
                                                          where<br>
                                                          <br>
                                                          import Log;<br>
                                                          import
                                                          Data.Char
                                                          (isLetter,
                                                          isDigit)<br>
                                                          <br>
                                                          </span>
                                                          isValid ::
                                                          String ->
                                                          Bool<span><br>
                                                          isValid s = go
                                                          (words s)<br>
                                                              where<br>
                                                                go
                                                          ([a]:b:_) =
                                                          isLetter a
                                                          && all
                                                          isDigit b<br>
                                                                go
                                                          _         =
                                                          False<br>
                                                          <br>
                                                              <br>
                                                          </span><span>
                                                          -- | The main
                                                          entry point.<br>
                                                          main :: IO ()<br>
                                                          main = do<br>
                                                          </span>    
                                                          putStrLn $
                                                          isValid "I
                                                          4764 He trusts
                                                          to you to set
                                                          them free,"<span><br>
                                                          <br>
                                                          <br>
                                                          I see this
                                                          error message
                                                          : <br>
                                                          <br>
                                                          </span>
                                                          <div>src/LogAnalysis.hs@19:16-19:67


                                                          </div>
                                                          <div><span>Couldn't

                                                          match type </span>
                                                          <div
                                                          style="font-size:14px"><span>Bool</span></div>
                                                          <span> with </span>
                                                          <div
                                                          style="font-size:14px">[<span>Char</span>]</div>
                                                          <span>
                                                          Expected type:
                                                          String Actual
                                                          type: Bool</span><span
                                                          title="Click
                                                          to show/hide
                                                          extra
                                                          information">
                                                          …</span><span
style="display:inline"> In the second argument of ‘($)’, namely ‘isValid
                                                          "I 4764 He
                                                          trusts to you
                                                          to set them
                                                          free,"’ In a
                                                          stmt of a 'do'
                                                          block:
                                                          putStrLn $
                                                          isValid "I
                                                          4764 He trusts
                                                          to you to set
                                                          them free,"<br>
                                                          <br>
                                                          Roelof<br>
                                                          <br>
                                                          </span></div>
                                                          <br>
                                                          <br>
                                                          <br>
                                                          <br>
                                                          Roelof Wobben
                                                          schreef op
                                                          23-2-2015 om
                                                          17:19:<br>
                                                          </div>
                                                          <div>
                                                          <div>
                                                          <blockquote
                                                          type="cite">
                                                          <div>I tried
                                                          it another way
                                                          more like
                                                          explained on
                                                          this page :  <a
moz-do-not-send="true"
href="http://www.seas.upenn.edu/%7Ecis194/spring13/lectures/02-ADTs.html"
target="_blank">http://www.seas.upenn.edu/~cis194/spring13/lectures/02-ADTs.html</a><br>
                                                          <br>
                                                          so I tried
                                                          this : <br>
                                                          <br>
                                                          parseMessage
                                                          :: [Char]
                                                          -> [Char]<br>
                                                          parseMessage s<br>
                                                          case
                                                          Errornumber of
                                                          <br>
                                                              IsDigit
                                                          Errornumber 
                                                          -> "Geldige
                                                          string"<br>
                                                             
                                                          otherwise           
                                                          ->
                                                          "Ongeldige
                                                          string"<br>
                                                            where<br>
                                                                Error =
                                                          s words<br>
                                                               
                                                          Errornumber =
                                                          Error(ErrorNumber

                                                          _ _ )<br>
                                                               
                                                          Errorcode =
                                                          Error(_
                                                          Errorcode _ )<br>
                                                          <br>
                                                          but now I
                                                          cannot use
                                                          where :( <br>
                                                          <br>
                                                          Roelof<br>
                                                          <br>
                                                          <br>
                                                          <br>
                                                          <br>
                                                          Roelof Wobben
                                                          schreef op
                                                          23-2-2015 om
                                                          16:10:<br>
                                                          </div>
                                                          <blockquote
                                                          type="cite">
                                                          <div>Oke, <br>
                                                          <br>
                                                          Then I make
                                                          there a
                                                          mistake,<br>
                                                          <br>
                                                          What I try to
                                                          do is to send
                                                          the file to
                                                          parseMessage
                                                          and let
                                                          IsValid check
                                                          if it´s have
                                                          the right
                                                          format. <br>
                                                          <br>
                                                          Then after the
                                                          where I try to
                                                          check if the
                                                          function
                                                          isValid
                                                          returns true
                                                          or false. <br>
                                                          <br>
                                                          Roelof<br>
                                                          <br>
                                                          <br>
                                                          Konstantine
                                                          Rybnikov
                                                          schreef op
                                                          23-2-2015 om
                                                          16:03:<br>
                                                          </div>
                                                          <blockquote
                                                          type="cite">
                                                          <div dir="ltr">
                                                          <div>
                                                          <div>
                                                          <div>Roelof,<br>
                                                          <br>
                                                          </div>
                                                          You defined
                                                          isValid
                                                          function in
                                                          the
                                                          upper-scope
                                                          first, and
                                                          then you
                                                          defined a
                                                          symbol
                                                          (variable)
                                                          that re-wrote
                                                          that name to
                                                          something
                                                          different
                                                          (string
                                                          "Geldige
                                                          string").
                                                          That's why you
                                                          get an error
                                                          saying it
                                                          doesn't expect
                                                          arguments.<br>
                                                          <br>
                                                          </div>
                                                          My suggestion
                                                          is to rename
                                                          second
                                                          isValid.<br>
                                                          <br>
                                                          </div>
                                                          Good luck.<br>
                                                          </div>
                                                          <div
                                                          class="gmail_extra"><br>
                                                          <div
                                                          class="gmail_quote">On


                                                          Mon, Feb 23,
                                                          2015 at 4:50
                                                          PM, Roelof
                                                          Wobben <span
                                                          dir="ltr"><<a
moz-do-not-send="true" href="mailto:r.wobben@home.nl" target="_blank">r.wobben@home.nl</a>></span>
                                                          wrote:<br>
                                                          <blockquote
                                                          class="gmail_quote"
                                                          style="margin:0
                                                          0 0
                                                          .8ex;border-left:1px
                                                          #ccc
                                                          solid;padding-left:1ex">
                                                          <div
                                                          bgcolor="#FFFFFF"
                                                          text="#000000">
                                                          <div>Chaddaï
                                                          Fouché schreef
                                                          op 23-2-2015
                                                          om 13:20:<br>
                                                          </div>
                                                          <span>
                                                          <blockquote
                                                          type="cite">
                                                          <div dir="ltr">
                                                          <div>Note that
                                                          Roelof is
                                                          doing the CIS
                                                          194 Homework <a
moz-do-not-send="true"
                                                          href="http://www.seas.upenn.edu/%7Ecis194/fall14/hw/03-ADTs.pdf"
target="_blank">http://www.seas.upenn.edu/~cis194/fall14/hw/03-ADTs.pdf</a>
                                                          (the older
                                                          version of
                                                          fall2014, not
                                                          the one
                                                          currently
                                                          running). This
                                                          is much
                                                          clearer than
                                                          Roelof's
                                                          description,
                                                          and gives
                                                          among other
                                                          information an
                                                          algebraic
                                                          datatype to
                                                          represent log
                                                          messages.<br>
                                                          <br>
                                                          <br>
                                                          -- <br>
                                                          </div>
                                                          Jedaï<br>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </span>
                                                          Correct and Im
                                                          trying to do
                                                          exercise 1 of
                                                          Week 2,<br>
                                                          <br>
                                                          I have tried
                                                          this solution
                                                          : <br>
                                                          <br>
                                                          -- | Main
                                                          entry point to
                                                          the
                                                          application.<br>
                                                          {-#
                                                          OPTIONS_GHC
                                                          -Wall #-}<br>
                                                          <br>
                                                          module
                                                          LogAnalysis
                                                          where<br>
                                                          <br>
                                                          import Log;<br>
                                                          import
                                                          Data.Char
                                                          (isLetter,
                                                          isDigit) <br>
                                                          <br>
                                                          isValid ::
                                                          [Char] ->
                                                          Bool <br>
                                                          isValid s = go
                                                          (words s)<br>
                                                              where<br>
                                                                go
                                                          ([a]:b:_) =
                                                          isLetter a
                                                          && all
                                                          isDigit b<br>
                                                                go
                                                          _         =
                                                          False <br>
                                                          <br>
                                                          parseMessage
                                                          :: [Char]
                                                          -> [Char]<br>
                                                          parseMessage s
                                                          = isValid s <br>
                                                              where <br>
                                                                 
                                                          isValid =
                                                          "Geldige
                                                          string"<br>
                                                                 
                                                          _       =
                                                          "Ongeldige
                                                          string"<br>
                                                          <br>
                                                          -- | The main
                                                          entry point.<br>
                                                          main :: IO ()<br>
                                                          main = do<br>
                                                              putStrLn $
                                                          parseMessage
                                                          "I 4764 He
                                                          trusts to you
                                                          to set them
                                                          free," <br>
                                                          <br>
                                                          <br>
                                                          but I see this
                                                          error message
                                                          : <br>
                                                          <br>
                                                          <div>src/LogAnalysis.hs@16:18-16:27



                                                          </div>
                                                          <div><span>Couldn't


                                                          match expected
                                                          type ‘[Char]
                                                          -> [Char]’
                                                          with actual
                                                          type </span>
                                                          <div
                                                          style="font-size:14px">[<span>Char</span>]</div>
                                                          <span> The
                                                          function </span>
                                                          <div
                                                          style="font-size:14px"><span>isValid</span></div>
                                                          <span> is
                                                          applied to one
                                                          argument, but
                                                          its type </span>
                                                          <div
                                                          style="font-size:14px">[<span>Char</span>]</div>
                                                          <span> has
                                                          none</span><span
                                                          title="Click
                                                          to show/hide
                                                          extra
                                                          information">
                                                          …</span><span
style="display:inline"> In the expression: isValid s In an equation for
                                                          ‘parseMessage’:



                                                          parseMessage s
                                                          = isValid s
                                                          where isValid
                                                          = "Geldige
                                                          string" _ =
                                                          "Ongeldige
                                                          string"<br>
                                                          <br>
                                                          <br>
                                                          </span></div>
                                                          <br>
                                                          </div>
                                                          <br>
_______________________________________________<br>
                                                          Haskell-Cafe
                                                          mailing list<br>
                                                          <a
                                                          moz-do-not-send="true"
href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
                                                          <a
                                                          moz-do-not-send="true"
href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe"
                                                          target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
                                                          <br>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </blockquote>
                                                          <br>
                                                          <br>
                                                          <fieldset></fieldset>
                                                          <br>
                                                          <pre>_______________________________________________
Haskell-Cafe mailing list
<a moz-do-not-send="true" href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a>
<a moz-do-not-send="true" href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a>
</pre>
                                                          </blockquote>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          <br>
_______________________________________________<br>
                                                          Haskell-Cafe
                                                          mailing list<br>
                                                          <a
                                                          moz-do-not-send="true"
href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
                                                          <a
                                                          moz-do-not-send="true"
href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe"
                                                          target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
                                                          <br>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </div>
                                                        </div>
                                                      </div>
                                                      <br>
_______________________________________________<br>
                                                      Haskell-Cafe
                                                      mailing list<br>
                                                      <a
                                                        moz-do-not-send="true"
href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
                                                      <a
                                                        moz-do-not-send="true"
href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe"
                                                        target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
                                                      <br>
                                                    </blockquote>
                                                  </div>
                                                  <br>
                                                </div>
                                              </blockquote>
                                              <br>
                                            </div>
                                          </div>
                                        </div>
                                        <br>
_______________________________________________<br>
                                        Haskell-Cafe mailing list<br>
                                        <a moz-do-not-send="true"
                                          href="mailto:Haskell-Cafe@haskell.org"
                                          target="_blank">Haskell-Cafe@haskell.org</a><br>
                                        <a moz-do-not-send="true"
                                          href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe"
                                          target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
                                        <br>
                                      </blockquote>
                                    </div>
                                    <br>
                                  </div>
                                  <br>
                                  <fieldset></fieldset>
                                  <br>
                                  <pre>_______________________________________________
Haskell-Cafe mailing list
<a moz-do-not-send="true" href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a>
<a moz-do-not-send="true" href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a>
</pre>
                                </blockquote>
                                <br>
                              </div>
                            </div>
                          </div>
                          <br>
_______________________________________________<br>
                          Haskell-Cafe mailing list<br>
                          <a moz-do-not-send="true"
                            href="mailto:Haskell-Cafe@haskell.org"
                            target="_blank">Haskell-Cafe@haskell.org</a><br>
                          <a moz-do-not-send="true"
                            href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe"
                            target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
                          <br>
                        </blockquote>
                      </div>
                      <br>
                    </div>
                  </blockquote>
                  <br>
                </div>
              </div>
            </div>
            <br>
            _______________________________________________<br>
            Haskell-Cafe mailing list<br>
            <a moz-do-not-send="true"
              href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
            <a moz-do-not-send="true"
              href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe"
              target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
            <br>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </body>
</html>