summaryrefslogtreecommitdiff
path: root/tests/unpoly.ur
blob: 706f36537d72463577756a2f16c0829fa5337b09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
val current = return (Some "1")
fun resolve (_ : string) = return (Some "2")

fun checkDeps deps =
    u <- current;
    List.foldlM (fn s (good, errs) =>
                    v' <- resolve s;
                    case v' of
                        None =>
                        return (False, <xml>
                          {errs}
                          Unknown library path <tt>{[s]}</tt>.<br/>
                        </xml>)
                      | Some v' =>
                        b <- return True;
                        if b then
                            return (good, errs)
                        else
                            return (False, <xml>
                              {errs}
                              Access denied to <tt>{[s]}</tt>.<br/>
                            </xml>)) (True, <xml/>) deps

fun main () =
    p <- checkDeps ("a" :: "b" :: []);
    return <xml><body>
      {p.2}
    </body></xml>