
Result of TYPE:


 
Coersion set:     
    REAL |> 'a28, 
    REAL |> 'a27, 
    'a27*'a28 |> 'a23, 
    REAL->INT |> 'a25, 
    'a7 |> 'a25->'a26, 
    'a26 |> 'a23->'a24, 
    'a24 |> 'a8, 
    'a11 |> 'a21, 
    'a0*'a1->'a1 |> 'a21->'a22, 
    'a22 |> 'a19, 
    'a9 |> 'a19->'a20, 
    'a20 |> 'a14, 
    'a11 |> 'a17, 
    'a0*'a1->'a0 |> 'a17->'a18, 
    'a18 |> 'a15, 
    'a9 |> 'a15->'a16, 
    'a16 |> 'a13, 
    'a13*'a14 |> 'a12, 
    'a11->'a12 |> 'a10, 
    'a9->'a10 |> 'a7, 
    'a8 |> 'a6
Type environment: 
Expression:       let mappair=(fn f =>(fn x =>((f @ (fst @ x)),(f @ (snd @ x))))) in ((mappair @ floor) @ (3.?,2.?))end
Type:             'a6


Result of MATCH:


 
Coersion set:     
    REAL |> 'a28, 
    REAL |> 'a27, 
    'a27*'a28 |> 'a29*'a30, 
    REAL->INT |> 'a33->'a34, 
    ('a37->'a38)->'a46*'a47->'a91*'a92 |> ('a33->'a34)->'a49*'a50->'a89*'a90, 
    'a49*'a50->'a89*'a90 |> 'a29*'a30->'a95*'a96, 
    'a95*'a96 |> 'a83*'a84, 
    'a59*'a60 |> 'a55*'a56, 
    'a0*'a1->'a1 |> 'a55*'a56->'a22, 
    'a22 |> 'a19, 
    'a63->'a64 |> 'a19->'a20, 
    'a20 |> 'a14, 
    'a59*'a60 |> 'a67*'a68, 
    'a0*'a1->'a0 |> 'a67*'a68->'a18, 
    'a18 |> 'a15, 
    'a63->'a64 |> 'a15->'a16, 
    'a16 |> 'a13, 
    'a13*'a14 |> 'a71*'a72, 
    'a59*'a60->'a71*'a72 |> 'a75*'a76->'a77*'a78, 
    ('a63->'a64)->'a75*'a76->'a77*'a78 |> ('a37->'a38)->'a46*'a47->'a91*'a92, 
    'a83*'a84 |> 'a99*'a100
Type environment: 
Expression:       let mappair=(fn f =>(fn x =>((f @ (fst @ x)),(f @ (snd @ x))))) in ((mappair @ floor) @ (3.?,2.?))end
Type:             'a99*'a100