Marc Weber wrote:
1)
   Is using mapM the best choice?
   Haskell has sequence or sequence_
   Anyway: No inserts take place. What am I doing wrong?

     fun speed_test_insert () =
       let
         val numbers = Enum.to 1 10
       in
         dml (DELETE FROM st WHERE 1 = 1);
         list<- (List.mapM (fn i =>  dml (INSERT INTO st (Id, A, B, C) VALUES ({[i]}, {["TEXT A"]}, 
{["TEXT B"]}, {["TEXT C"]}) ) ) numbers);
         return (page "refreshed"<xml>{[show numbers]}</xml>)
       end

I think [List.app] is the better choice.

I don't see any obvious problem in the above that would lead to no rows being inserted, but I don't know which code for [Enum.to] you have in mind. I'd guess there's a bug where it's returning an empty list.

BTW, you could write [TRUE] instead of [1 = 1]. IMO, it's slightly nicer looking.

2)
   Tree demo:
       A witness that key belongs to the type class sql_injectable_prim,
       which indicates that both key and option key are fair game to use with 
SQL

   What does this exactly mean?

[sql_injectable] is an abstract type family. This means that its definition is not exposed by its containing module, [Basis]. Thus, values in this type family can only be built using combinators exposed by [Basis]. There is a value for building [sql_injectable int], but it is impossible to construct a value of type [sql_injectable (int -> int)].

That behavior is appropriate because [sql_injectable] is meant as a type of proofs that particular types are understood by the SQL engine. Haskell type classes are always open, where any module may add new instances. The [sql_injectable] class in Ur/Web is closed, which makes it suitable as a type of proofs with a fixed meaning. While the dictionary-passing implementation of type classes is only implicit in Haskell, it is explicit in Ur, so that [sql_injectable] values may either be passed manually or found automatically by type class resolution.

_______________________________________________
Ur mailing list
[email protected]
http://www.impredicative.com/cgi-bin/mailman/listinfo/ur

Reply via email to