diff --git a/.snapshots/should_fail_for_abstractions_with_a_wrong_type_definition/golden b/.snapshots/should_fail_for_abstractions_with_a_wrong_type_definition/golden index 68ba784f5..94ac0ced5 100644 --- a/.snapshots/should_fail_for_abstractions_with_a_wrong_type_definition/golden +++ b/.snapshots/should_fail_for_abstractions_with_a_wrong_type_definition/golden @@ -9,47 +9,145 @@ ] , aexps = [ Typed - ([] :=> TVar (TV (-1) Star)) + ([] :=> + TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TCon (TC "String" Star) "prelude")) + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TCon (TC "Integer" Star) "prelude")) + (TCon (TC "Boolean" Star) "prelude"))) (Area (Loc 0 1 1) (Loc 58 2 24)) (TypedExp (Typed - ([] :=> TVar (TV (-1) Star)) + ([] :=> + TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TCon (TC "String" Star) "prelude")) + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TCon (TC "Integer" Star) "prelude")) + (TCon (TC "Boolean" Star) "prelude"))) (Area (Loc 35 2 1) (Loc 58 2 24)) (Assignment "fn" (Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn + "Eq" + [ TCon (TC "String" Star) "prelude" ] + (Just (Area (Loc 53 2 19) (Loc 55 2 21))) + ] :=> + TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TCon (TC "String" Star) "prelude")) + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TCon (TC "String" Star) "prelude")) + (TCon (TC "Boolean" Star) "prelude"))) (Area (Loc 40 2 6) (Loc 58 2 24)) (Abs (Typed - ([] :=> TVar (TV (-1) Star)) (Area (Loc 41 2 7) (Loc 42 2 8)) "a") + ([ IsIn + "Eq" + [ TCon (TC "String" Star) "prelude" ] + (Just (Area (Loc 53 2 19) (Loc 55 2 21))) + ] :=> + TCon (TC "String" Star) "prelude") + (Area (Loc 41 2 7) (Loc 42 2 8)) + "a") [ Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn + "Eq" + [ TCon (TC "String" Star) "prelude" ] + (Just (Area (Loc 53 2 19) (Loc 55 2 21))) + ] :=> + TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TCon (TC "String" Star) "prelude")) + (TCon (TC "Boolean" Star) "prelude")) (Area (Loc 40 2 6) (Loc 58 2 24)) (Abs (Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn + "Eq" + [ TCon (TC "String" Star) "prelude" ] + (Just (Area (Loc 53 2 19) (Loc 55 2 21))) + ] :=> + TCon (TC "String" Star) "prelude") (Area (Loc 44 2 10) (Loc 45 2 11)) "b") [ Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn + "Eq" + [ TCon (TC "String" Star) "prelude" ] + (Just (Area (Loc 53 2 19) (Loc 55 2 21))) + ] :=> + TCon (TC "Boolean" Star) "prelude") (Area (Loc 51 2 17) (Loc 57 2 23)) (App (Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn + "Eq" + [ TCon (TC "String" Star) "prelude" ] + (Just (Area (Loc 53 2 19) (Loc 55 2 21))) + ] :=> + TApp + (TApp + (TCon + (TC "(->)" (Kfun Star (Kfun Star Star))) + "prelude") + (TCon (TC "String" Star) "prelude")) + (TCon (TC "Boolean" Star) "prelude")) (Area (Loc 51 2 17) (Loc 57 2 23)) (App (Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn + "Eq" + [ TCon (TC "String" Star) "prelude" ] + Nothing + ] :=> + TApp + (TApp + (TCon + (TC + "(->)" (Kfun Star (Kfun Star Star))) + "prelude") + (TCon (TC "String" Star) "prelude")) + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun Star (Kfun Star Star))) + "prelude") + (TCon (TC "String" Star) "prelude")) + (TCon (TC "Boolean" Star) "prelude"))) (Area (Loc 53 2 19) (Loc 55 2 21)) (Var "==" False)) (Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn + "Eq" + [ TCon (TC "String" Star) "prelude" ] + (Just (Area (Loc 53 2 19) (Loc 55 2 21))) + ] :=> + TCon (TC "String" Star) "prelude") (Area (Loc 51 2 17) (Loc 52 2 18)) (Var "a" False)) False)) (Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn + "Eq" + [ TCon (TC "String" Star) "prelude" ] + (Just (Area (Loc 53 2 19) (Loc 55 2 21))) + ] :=> + TCon (TC "String" Star) "prelude") (Area (Loc 56 2 22) (Loc 57 2 23)) (Var "b" False)) True) diff --git a/.snapshots/should_fail_to_infer_applications_when_a_variable_is_used_with_different_types/golden b/.snapshots/should_fail_to_infer_applications_when_a_variable_is_used_with_different_types/golden index e2e745fa8..a5b6c621f 100644 --- a/.snapshots/should_fail_to_infer_applications_when_a_variable_is_used_with_different_types/golden +++ b/.snapshots/should_fail_to_infer_applications_when_a_variable_is_used_with_different_types/golden @@ -975,128 +975,1797 @@ (LNum "3")) True))) , Typed - ([] :=> TVar (TV (-1) Star)) + ([] :=> + TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TCon (TC "Integer" Star) "prelude")) + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TRecord + (fromList + [ ( "input" , TCon (TC "String" Star) "prelude" ) + , ( "todos" + , TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList []))) + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TCon (TC "String" Star) "prelude")) + (TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TApp + (TApp + (TCon (TC "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TRecord + (fromList + [ ( "input" , TCon (TC "String" Star) "prelude" ) + , ( "todos" + , TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList []))) + (TRecord + (fromList + [ ( "input" , TCon (TC "String" Star) "prelude" ) + , ( "todos" + , TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList [])))) + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TRecord + (fromList + [ ( "input" , TCon (TC "String" Star) "prelude" ) + , ( "todos" + , TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList []))) + (TRecord + (fromList + [ ( "input" , TCon (TC "String" Star) "prelude" ) + , ( "todos" + , TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList [])))))))) (Area (Loc 765 40 1) (Loc 1082 52 2)) (TypedExp (Typed - ([] :=> TVar (TV (-1) Star)) + ([] :=> + TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TCon (TC "Integer" Star) "prelude")) + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TRecord + (fromList + [ ( "input" , TCon (TC "String" Star) "prelude" ) + , ( "todos" + , TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList []))) + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TCon (TC "String" Star) "prelude")) + (TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TApp + (TApp + (TCon (TC "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") + (TApp + (TApp + (TCon + (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TRecord + (fromList + [ ( "input" , TCon (TC "String" Star) "prelude" ) + , ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList []))) + (TRecord + (fromList + [ ( "input" , TCon (TC "String" Star) "prelude" ) + , ( "todos" + , TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList [])))) + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TRecord + (fromList + [ ( "input" , TCon (TC "String" Star) "prelude" ) + , ( "todos" + , TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList []))) + (TRecord + (fromList + [ ( "input" , TCon (TC "String" Star) "prelude" ) + , ( "todos" + , TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList [])))))))) (Area (Loc 803 41 1) (Loc 1082 52 2)) (Assignment "toggleTodo" (Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn "Number" [ TCon (TC "Integer" Star) "prelude" ] Nothing + ] :=> + TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TCon (TC "Integer" Star) "prelude")) + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TRecord + (fromList + [ ( "input" , TCon (TC "String" Star) "prelude" ) + , ( "todos" + , TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList []))) + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TCon (TC "String" Star) "prelude")) + (TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TApp + (TApp + (TCon + (TC "Wish" (Kfun Star (Kfun Star Star))) + "Module.mad") + (TApp + (TApp + (TCon + (TC "(->)" (Kfun Star (Kfun Star Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon (TC "String" Star) "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) + "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList []))) + (TRecord + (fromList + [ ( "input" + , TCon (TC "String" Star) "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) + "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList [])))) + (TApp + (TApp + (TCon + (TC "(->)" (Kfun Star (Kfun Star Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon (TC "String" Star) "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) + "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) + "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]))) + (TRecord + (fromList + [ ( "input" , TCon (TC "String" Star) "prelude" ) + , ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ])))))))) (Area (Loc 816 41 14) (Loc 1082 52 2)) (Abs (Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn "Number" [ TCon (TC "Integer" Star) "prelude" ] Nothing + ] :=> + TCon (TC "Integer" Star) "prelude") (Area (Loc 817 41 15) (Loc 822 41 20)) "index") [ Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn "Number" [ TCon (TC "Integer" Star) "prelude" ] Nothing + ] :=> + TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TRecord + (fromList + [ ( "input" , TCon (TC "String" Star) "prelude" ) + , ( "todos" + , TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList []))) + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TCon (TC "String" Star) "prelude")) + (TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TApp + (TApp + (TCon + (TC "Wish" (Kfun Star (Kfun Star Star))) + "Module.mad") + (TApp + (TApp + (TCon + (TC "(->)" (Kfun Star (Kfun Star Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon (TC "String" Star) "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) + "prelude") + (TCon + (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList []))) + (TRecord + (fromList + [ ( "input" + , TCon (TC "String" Star) "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) + "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList [])))) + (TApp + (TApp + (TCon + (TC "(->)" (Kfun Star (Kfun Star Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon (TC "String" Star) "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) + "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) + "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]))) + (TRecord + (fromList + [ ( "input" + , TCon (TC "String" Star) "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) + "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) + "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]))))))) (Area (Loc 816 41 14) (Loc 1082 52 2)) (Abs (Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn "Number" [ TCon (TC "Integer" Star) "prelude" ] Nothing + ] :=> + TRecord + (fromList + [ ( "input" , TCon (TC "String" Star) "prelude" ) + , ( "todos" + , TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList [])) (Area (Loc 824 41 22) (Loc 825 41 23)) "_") [ Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn + "Number" [ TCon (TC "Integer" Star) "prelude" ] Nothing + ] :=> + TApp + (TApp + (TCon + (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TCon (TC "String" Star) "prelude")) + (TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TApp + (TApp + (TCon + (TC "Wish" (Kfun Star (Kfun Star Star))) + "Module.mad") + (TApp + (TApp + (TCon + (TC + "(->)" (Kfun Star (Kfun Star Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon + (TC "String" Star) "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" (Kfun Star Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ]) + Nothing + (fromList []))) + (TRecord + (fromList + [ ( "input" + , TCon (TC "String" Star) "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) + "prelude") + (TCon + (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList [])))) + (TApp + (TApp + (TCon + (TC "(->)" (Kfun Star (Kfun Star Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon (TC "String" Star) "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) + "prelude") + (TCon + (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) + "prelude") + (TCon + (TC "Todo" Star) "Module.mad") + ) + ]))) + (TRecord + (fromList + [ ( "input" + , TCon (TC "String" Star) "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) + "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) + "prelude") + (TCon (TC "Todo" Star) "Module.mad") + ) + ])))))) (Area (Loc 816 41 14) (Loc 1082 52 2)) (Abs (Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn + "Number" + [ TCon (TC "Integer" Star) "prelude" ] + Nothing + ] :=> + TCon (TC "String" Star) "prelude") (Area (Loc 827 41 25) (Loc 829 41 27)) "__") [ Typed - ([] :=> TVar (TV (-1) Star)) - (Area (Loc 834 41 32) (Loc 1082 52 2)) + ([ IsIn + "Number" + [ TCon (TC "Integer" Star) "prelude" ] + Nothing + ] :=> + TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TApp + (TApp + (TCon + (TC "Wish" (Kfun Star (Kfun Star Star))) + "Module.mad") + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun Star (Kfun Star Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon + (TC "String" Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun Star Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ]) + Nothing + (fromList []))) + (TRecord + (fromList + [ ( "input" + , TCon + (TC "String" Star) "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun Star Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ]) + Nothing + (fromList [])))) + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun Star (Kfun Star Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon + (TC "String" Star) "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun Star Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun Star Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ]))) + (TRecord + (fromList + [ ( "input" + , TCon (TC "String" Star) "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC "List" (Kfun Star Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ]))))) + (Area (Loc 834 41 32) (Loc 1082 52 2)) (ListConstructor [ Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn + "Number" + [ TCon (TC "Integer" Star) "prelude" ] + Nothing + ] :=> + TApp + (TApp + (TCon + (TC + "Wish" + (Kfun Star (Kfun Star Star))) + "Module.mad") + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star (Kfun Star Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon + (TC "String" Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ]) + Nothing + (fromList []))) + (TRecord + (fromList + [ ( "input" + , TCon + (TC "String" Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun Star Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ]) + Nothing + (fromList [])))) + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun Star (Kfun Star Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon + (TC "String" Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun Star Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun Star Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ]))) + (TRecord + (fromList + [ ( "input" + , TCon + (TC "String" Star) "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun Star Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun Star Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ])))) (Area (Loc 838 42 3) (Loc 1080 51 12)) (ListItem (Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn + "Number" + [ TCon (TC "Integer" Star) "prelude" + ] + Nothing + ] :=> + TApp + (TApp + (TCon + (TC + "Wish" + (Kfun + Star (Kfun Star Star))) + "Module.mad") + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun Star Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList []))) + (TRecord + (fromList + [ ( "input" + , TCon + (TC "String" Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ]) + Nothing + (fromList [])))) + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun Star Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon + (TC "String" Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ]))) + (TRecord + (fromList + [ ( "input" + , TCon + (TC "String" Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ])))) (Area (Loc 838 42 3) (Loc 1080 51 12)) (App (Typed - ([] :=> TVar (TV (-1) Star)) - (Area (Loc 838 42 3) (Loc 840 42 5)) - (Var "of" False)) - (Typed - ([] :=> TVar (TV (-1) Star)) - (Area - (Loc 841 42 6) (Loc 1079 51 11)) - (Abs - (Typed - ([] :=> TVar (TV (-1) Star)) - (Area - (Loc 842 42 7) - (Loc 847 42 12)) - "state") - [ Typed - ([] :=> TVar (TV (-1) Star)) - (Area - (Loc 852 42 17) - (Loc 1079 51 11)) - (App - (Typed - ([] :=> - TVar (TV (-1) Star)) - (Area - (Loc 852 42 17) - (Loc 1072 51 4)) - (Abs - (Typed - ([] :=> - TVar - (TV - (-1) - Star)) - (Area - (Loc - 852 42 17) - (Loc - 855 42 20)) - "__P__2") - [ Typed - ([] :=> - TVar - (TV - (-1) - Star)) - (Area - (Loc - 852 42 17) - (Loc - 1068 - 50 - 7)) - (App - (Typed - ([] :=> - TVar - (TV - (-1) - Star)) - (Area - (Loc - 983 - 47 - 5) - (Loc - 1068 - 50 - 7)) - (Abs - (Typed - ([] :=> - TVar - (TV - (-1) - Star)) - (Area - (Loc + ([] :=> + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun Star Star))) + "prelude") + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]))) + (TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ])))) + (TApp + (TApp + (TCon + (TC + "Wish" + (Kfun + Star + (Kfun + Star Star))) + "Module.mad") + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList []))) + (TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList [])))) + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]))) + (TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]))))) + (Area (Loc 838 42 3) (Loc 840 42 5)) + (Var "of" False)) + (Typed + ([ IsIn + "Number" + [ TCon + (TC "Integer" Star) + "prelude" + ] + Nothing + ] :=> + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun Star Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]))) + (TRecord + (fromList + [ ( "input" + , TCon + (TC "String" Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC "Todo" Star) + "Module.mad") + ) + ]))) + (Area + (Loc 841 42 6) (Loc 1079 51 11)) + (Abs + (Typed + ([ IsIn + "Number" + [ TCon + (TC "Integer" Star) + "prelude" + ] + Nothing + ] :=> + TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ])) + (Area + (Loc 842 42 7) + (Loc 847 42 12)) + "state") + [ Typed + ([ IsIn + "Number" + [ TCon + (TC "Integer" Star) + "prelude" + ] + Nothing + ] :=> + TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ])) + (Area + (Loc 852 42 17) + (Loc 1079 51 11)) + (App + (Typed + ([ IsIn + "Number" + [ TCon + (TC + "Integer" + Star) + "prelude" + ] + Nothing + ] :=> + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]))) + (TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]))) + (Area + (Loc 852 42 17) + (Loc 1072 51 4)) + (Abs + (Typed + ([ IsIn + "Number" + [ TCon + (TC + "Integer" + Star) + "prelude" + ] + Nothing + ] :=> + TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ])) + (Area + (Loc + 852 42 17) + (Loc + 855 42 20)) + "__P__2") + [ Typed + ([ IsIn + "Number" + [ TCon + (TC + "Integer" + Star) + "prelude" + ] + Nothing + ] :=> + TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ])) + (Area + (Loc + 852 42 17) + (Loc + 1068 + 50 + 7)) + (App + (Typed + ([ IsIn + "Number" + [ TCon + (TC + "Integer" + Star) + "prelude" + ] + Nothing + ] :=> + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad")) + (TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]))) + (Area + (Loc + 983 + 47 + 5) + (Loc + 1068 + 50 + 7)) + (Abs + (Typed + ([ IsIn + "Number" + [ TCon + (TC + "Integer" + Star) + "prelude" + ] + Nothing + ] :=> + TCon + (TC + "Todo" + Star) + "Module.mad") + (Area + (Loc 984 47 6) @@ -1106,11 +2775,59 @@ 13)) "toggled") [ Typed - ([] :=> - TVar - (TV - (-1) - Star)) + ([ IsIn + "Number" + [ TCon + (TC + "Integer" + Star) + "prelude" + ] + Nothing + ] :=> + TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ])) (Area (Loc 997 @@ -1123,10 +2840,49 @@ (Record [ Typed ([] :=> - TVar - (TV - (-1) - Star)) + TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ])) (Area (Loc 1005 @@ -1139,10 +2895,49 @@ (FieldSpread (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ])) (Area (Loc 1008 @@ -1156,11 +2951,29 @@ "state" False))) , Typed - ([] :=> - TVar - (TV - (-1) - Star)) + ([ IsIn + "Number" + [ TCon + (TC + "Integer" + Star) + "prelude" + ] + Nothing + ] :=> + TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad")) (Area (Loc 1021 @@ -1173,11 +2986,29 @@ (Field ( "todos" , Typed - ([] :=> - TVar - (TV - (-1) - Star)) + ([ IsIn + "Number" + [ TCon + (TC + "Integer" + Star) + "prelude" + ] + Nothing + ] :=> + TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad")) (Area (Loc 1028 @@ -1189,11 +3020,53 @@ 46)) (App (Typed - ([] :=> - TVar - (TV - (-1) - Star)) + ([ IsIn + "Number" + [ TCon + (TC + "Integer" + Star) + "prelude" + ] + Nothing + ] :=> + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad"))) + (TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad"))) (Area (Loc 1028 @@ -1205,11 +3078,69 @@ 39)) (App (Typed - ([] :=> - TVar - (TV - (-1) - Star)) + ([ IsIn + "Number" + [ TCon + (TC + "Integer" + Star) + "prelude" + ] + Nothing + ] :=> + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TCon + (TC + "Integer" + Star) + "prelude")) + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad"))) + (TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad")))) (Area (Loc 1028 @@ -1222,10 +3153,75 @@ (App (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TCon + (TC + "Integer" + Star) + "prelude")) + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TCon + (TC + "Integer" + Star) + "prelude")) + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad"))) + (TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad"))))) (Area (Loc 1028 @@ -1239,11 +3235,21 @@ "slice" False)) (Typed - ([] :=> - TVar - (TV - 0 - Star)) + ([ IsIn + "Number" + [ TCon + (TC + "Integer" + Star) + "prelude" + ] + Nothing + ] :=> + TCon + (TC + "Integer" + Star) + "prelude") (Area (Loc 1034 @@ -1257,11 +3263,21 @@ "0")) False)) (Typed - ([] :=> - TVar - (TV - (-1) - Star)) + ([ IsIn + "Number" + [ TCon + (TC + "Integer" + Star) + "prelude" + ] + Nothing + ] :=> + TCon + (TC + "Integer" + Star) + "prelude") (Area (Loc 1037 @@ -1274,10 +3290,35 @@ (App (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad"))) + (TCon + (TC + "Integer" + Star) + "prelude")) (Area (Loc 1037 @@ -1292,10 +3333,19 @@ False)) (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad")) (Area (Loc 1041 @@ -1305,17 +3355,201 @@ 1052 49 38)) - (Var - "state.todos" - False)) + (Access + (Typed + ([] :=> + TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ])) + (Area + (Loc + 1041 + 49 + 27) + (Loc + 1046 + 49 + 32)) + (Var + "state" + False)) + (Typed + ([] :=> + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]))) + (TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad"))) + (Area + (Loc + 1047 + 49 + 33) + (Loc + 1052 + 49 + 38)) + (Var + ".todos" + False)))) True)) False)) (Typed - ([] :=> - TVar - (TV - (-1) - Star)) + ([ IsIn + "Number" + [ TCon + (TC + "Integer" + Star) + "prelude" + ] + Nothing + ] :=> + TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ])) (Area (Loc 1055 @@ -1333,11 +3567,21 @@ ]) ])) (Typed - ([] :=> - TVar - (TV - (-1) - Star)) + ([ IsIn + "Number" + [ TCon + (TC + "Integer" + Star) + "prelude" + ] + Nothing + ] :=> + TCon + (TC + "Todo" + Star) + "Module.mad") (Area (Loc 852 @@ -1350,10 +3594,27 @@ (App (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad")) + (TCon + (TC + "Todo" + Star) + "Module.mad")) (Area (Loc 926 @@ -1366,10 +3627,11 @@ (Abs (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TCon + (TC + "Todo" + Star) + "Module.mad") (Area (Loc 0 @@ -1382,10 +3644,11 @@ "__W__3") [ Typed ([] :=> - TVar - (TV - (-1) - Star)) + TCon + (TC + "Todo" + Star) + "Module.mad") (Area (Loc 926 @@ -1398,10 +3661,11 @@ (Where (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TCon + (TC + "Todo" + Star) + "Module.mad") (Area (Loc 0 @@ -1416,10 +3680,27 @@ False)) [ Typed ([] :=> - TVar - (TV - (-1) - Star)) + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad")) + (TCon + (TC + "Todo" + Star) + "Module.mad")) (Area (Loc 934 @@ -1432,10 +3713,11 @@ (Is (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TCon + (TC + "Todo" + Star) + "Module.mad") (Area (Loc 934 @@ -1449,10 +3731,11 @@ "Todo" [ Typed ([] :=> - TVar - (TV - (-1) - Star)) + TCon + (TC + "String" + Star) + "prelude") (Area (Loc 939 @@ -1466,10 +3749,11 @@ "txt") , Typed ([] :=> - TVar - (TV - (-1) - Star)) + TCon + (TC + "Boolean" + Star) + "prelude") (Area (Loc 944 @@ -1484,10 +3768,11 @@ ])) (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TCon + (TC + "Todo" + Star) + "Module.mad") (Area (Loc 956 @@ -1500,10 +3785,27 @@ (App (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TCon + (TC + "Boolean" + Star) + "prelude")) + (TCon + (TC + "Todo" + Star) + "Module.mad")) (Area (Loc 956 @@ -1516,10 +3818,43 @@ (App (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TCon + (TC + "String" + Star) + "prelude")) + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TCon + (TC + "Boolean" + Star) + "prelude")) + (TCon + (TC + "Todo" + Star) + "Module.mad"))) (Area (Loc 956 @@ -1531,13 +3866,14 @@ 39)) (Var "Todo" - False)) + True)) (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TCon + (TC + "String" + Star) + "prelude") (Area (Loc 961 @@ -1553,10 +3889,11 @@ False)) (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TCon + (TC + "Boolean" + Star) + "prelude") (Area (Loc 966 @@ -1569,10 +3906,27 @@ (App (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TCon + (TC + "Boolean" + Star) + "prelude")) + (TCon + (TC + "Boolean" + Star) + "prelude")) (Area (Loc 966 @@ -1587,10 +3941,11 @@ False)) (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TCon + (TC + "Boolean" + Star) + "prelude") (Area (Loc 967 @@ -1609,10 +3964,11 @@ ])) (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TCon + (TC + "Todo" + Star) + "Module.mad") (Area (Loc 852 @@ -1625,10 +3981,35 @@ (App (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TApp + (TCon + (TC + "Maybe" + (Kfun + Star + Star)) + "Module.mad") + (TCon + (TC + "Todo" + Star) + "Module.mad"))) + (TCon + (TC + "Todo" + Star) + "Module.mad")) (Area (Loc 890 @@ -1641,10 +4022,51 @@ (App (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad")) + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TApp + (TCon + (TC + "Maybe" + (Kfun + Star + Star)) + "Module.mad") + (TCon + (TC + "Todo" + Star) + "Module.mad"))) + (TCon + (TC + "Todo" + Star) + "Module.mad"))) (Area (Loc 890 @@ -1659,10 +4081,11 @@ False)) (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TCon + (TC + "Todo" + Star) + "Module.mad") (Area (Loc 900 @@ -1675,10 +4098,27 @@ (App (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TCon + (TC + "Boolean" + Star) + "prelude")) + (TCon + (TC + "Todo" + Star) + "Module.mad")) (Area (Loc 900 @@ -1691,10 +4131,43 @@ (App (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TCon + (TC + "String" + Star) + "prelude")) + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TCon + (TC + "Boolean" + Star) + "prelude")) + (TCon + (TC + "Todo" + Star) + "Module.mad"))) (Area (Loc 900 @@ -1706,7 +4179,7 @@ 19)) (Var "Todo" - False)) + True)) (Typed ([] :=> TCon @@ -1748,10 +4221,19 @@ True)) (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TApp + (TCon + (TC + "Maybe" + (Kfun + Star + Star)) + "Module.mad") + (TCon + (TC + "Todo" + Star) + "Module.mad")) (Area (Loc 852 @@ -1764,10 +4246,43 @@ (App (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad"))) + (TApp + (TCon + (TC + "Maybe" + (Kfun + Star + Star)) + "Module.mad") + (TCon + (TC + "Todo" + Star) + "Module.mad"))) (Area (Loc 874 @@ -1780,10 +4295,59 @@ (App (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TCon + (TC + "Integer" + Star) + "prelude")) + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad"))) + (TApp + (TCon + (TC + "Maybe" + (Kfun + Star + Star)) + "Module.mad") + (TCon + (TC + "Todo" + Star) + "Module.mad")))) (Area (Loc 874 @@ -1798,10 +4362,11 @@ False)) (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TCon + (TC + "Integer" + Star) + "prelude") (Area (Loc 878 @@ -1817,10 +4382,19 @@ True)) (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad")) (Area (Loc 852 @@ -1833,10 +4407,73 @@ (App (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]))) + (TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad"))) (Area (Loc 862 @@ -1851,10 +4488,49 @@ False)) (Typed ([] :=> - TVar - (TV - (-1) - Star)) + TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ])) (Area (Loc 852 @@ -1874,8 +4550,59 @@ True) ])) (Typed - ([] :=> - TVar (TV (-1) Star)) + ([ IsIn + "Number" + [ TCon + (TC + "Integer" + Star) + "prelude" + ] + Nothing + ] :=> + TRecord + (fromList + [ ( "input" + , TCon + (TC + "String" + Star) + "prelude" + ) + , ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ]) + Nothing + (fromList + [ ( "todos" + , TApp + (TCon + (TC + "List" + (Kfun + Star + Star)) + "prelude") + (TCon + (TC + "Todo" + Star) + "Module.mad") + ) + ])) (Area (Loc 1073 51 5) (Loc 1078 51 10)) @@ -1981,218 +4708,863 @@ Nothing (fromList [])))))))))) ] - , atypedecls = + , atypedecls = + [ Untyped + (Area (Loc 556 29 1) (Loc 623 29 68)) + Alias + { aliasname = "Action" + , aliasparams = [ "a" ] + , aliastype = + Untyped + (Area (Loc 580 29 25) (Loc 623 29 68)) + (TRArr + (Untyped (Area (Loc 580 29 25) (Loc 581 29 26)) (TRSingle "a")) + (Untyped + (Area (Loc 585 29 30) (Loc 623 29 68)) + (TRArr + (Untyped + (Area (Loc 585 29 30) (Loc 591 29 36)) (TRSingle "String")) + (Untyped + (Area (Loc 595 29 40) (Loc 623 29 68)) + (TRComp + "List" + [ Untyped + (Area (Loc 601 29 46) (Loc 623 29 68)) + (TRComp + "Wish" + [ Untyped + (Area (Loc 606 29 51) (Loc 614 29 59)) + (TRArr + (Untyped + (Area (Loc 607 29 52) (Loc 608 29 53)) + (TRSingle "a")) + (Untyped + (Area (Loc 612 29 57) (Loc 613 29 58)) + (TRSingle "a"))) + , Untyped + (Area (Loc 606 29 51) (Loc 623 29 68)) + (TRArr + (Untyped + (Area (Loc 616 29 61) (Loc 617 29 62)) + (TRSingle "a")) + (Untyped + (Area (Loc 621 29 66) (Loc 622 29 67)) + (TRSingle "a"))) + ]) + ]))))) + , aliasexported = True + } + , Untyped + (Area (Loc 661 33 1) (Loc 714 33 54)) + Alias + { aliasname = "State" + , aliasparams = [] + , aliastype = + Untyped + (Area (Loc 675 33 15) (Loc 714 33 54)) + (TRRecord + (fromList + [ ( "input" + , ( Area (Loc 677 33 17) (Loc 685 33 25) + , Untyped + (Area (Loc 686 33 26) (Loc 692 33 32)) (TRSingle "String") + ) + ) + , ( "todos" + , ( Area (Loc 694 33 34) (Loc 702 33 42) + , Untyped + (Area (Loc 703 33 43) (Loc 712 33 52)) + (TRComp + "List" + [ Untyped + (Area (Loc 708 33 48) (Loc 712 33 52)) (TRSingle "Todo") + ]) + ) + ) + ]) + Nothing) + , aliasexported = False + } + , Untyped + (Area (Loc 123 11 1) (Loc 155 11 33)) + ADT + { adtname = "Maybe" + , adtparams = [ "a" ] + , adtconstructors = + [ Untyped + (Area (Loc 138 11 16) (Loc 145 11 23)) + (Constructor + "Just" + [ Untyped (Area (Loc 143 11 21) (Loc 144 11 22)) (TRSingle "a") ] + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TVar (TV 274 Star))) + (TApp + (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") + (TVar (TV 274 Star))))) + , Untyped + (Area (Loc 148 11 26) (Loc 155 11 33)) + (Constructor + "Nothing" + [] + (TApp + (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") + (TVar (TV 275 Star)))) + ] + , adtType = + TApp + (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") + (TVar (TV 590647783936702427 Star)) + , adtexported = False + } + , Untyped + (Area (Loc 221 16 1) (Loc 278 16 58)) + ADT + { adtname = "Wish" + , adtparams = [ "e" , "a" ] + , adtconstructors = + [ Untyped + (Area (Loc 244 16 24) (Loc 278 16 58)) + (Constructor + "Wish" + [ Untyped + (Area (Loc 250 16 30) (Loc 277 16 57)) + (TRArr + (Untyped + (Area (Loc 250 16 30) (Loc 257 16 37)) + (TRArr + (Untyped + (Area (Loc 250 16 30) (Loc 251 16 31)) (TRSingle "e")) + (Untyped + (Area (Loc 255 16 35) (Loc 257 16 37)) (TRSingle "{}")))) + (Untyped + (Area (Loc 263 16 43) (Loc 277 16 57)) + (TRArr + (Untyped + (Area (Loc 263 16 43) (Loc 270 16 50)) + (TRArr + (Untyped + (Area (Loc 263 16 43) (Loc 264 16 44)) + (TRSingle "a")) + (Untyped + (Area (Loc 268 16 48) (Loc 270 16 50)) + (TRSingle "{}")))) + (Untyped + (Area (Loc 275 16 55) (Loc 277 16 57)) (TRSingle "{}"))))) + ] + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TVar (TV 276 Star))) + (TCon (TC "{}" Star) "prelude"))) + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TApp + (TApp + (TCon + (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TVar (TV 277 Star))) + (TCon (TC "{}" Star) "prelude"))) + (TCon (TC "{}" Star) "prelude")))) + (TApp + (TApp + (TCon (TC "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") + (TVar (TV 276 Star))) + (TVar (TV 277 Star))))) + ] + , adtType = + TApp + (TApp + (TCon (TC "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") + (TVar (TV 590643385890189583 Star))) + (TVar (TV 590647783936702427 Star)) + , adtexported = True + } + , Untyped + (Area (Loc 627 32 1) (Loc 660 32 34)) + ADT + { adtname = "Todo" + , adtparams = [] + , adtconstructors = + [ Untyped + (Area (Loc 639 32 13) (Loc 660 32 34)) + (Constructor + "Todo" + [ Untyped + (Area (Loc 644 32 18) (Loc 650 32 24)) (TRSingle "String") + , Untyped + (Area (Loc 652 32 26) (Loc 659 32 33)) (TRSingle "Boolean") + ] + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TCon (TC "String" Star) "prelude")) + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TCon (TC "Boolean" Star) "prelude")) + (TCon (TC "Todo" Star) "Module.mad")))) + ] + , adtType = TCon (TC "Todo" Star) "Module.mad" + , adtexported = False + } + ] + , ainterfaces = [] + , ainstances = [ Untyped - (Area (Loc 556 29 1) (Loc 623 29 68)) - Alias - { aliasname = "Action" - , aliasparams = [ "a" ] - , aliastype = - Untyped - (Area (Loc 580 29 25) (Loc 623 29 68)) - (TRArr - (Untyped (Area (Loc 580 29 25) (Loc 581 29 26)) (TRSingle "a")) - (Untyped - (Area (Loc 585 29 30) (Loc 623 29 68)) - (TRArr - (Untyped - (Area (Loc 585 29 30) (Loc 591 29 36)) (TRSingle "String")) - (Untyped - (Area (Loc 595 29 40) (Loc 623 29 68)) - (TRComp - "List" - [ Untyped - (Area (Loc 601 29 46) (Loc 623 29 68)) - (TRComp - "Wish" - [ Untyped - (Area (Loc 606 29 51) (Loc 614 29 59)) - (TRArr - (Untyped - (Area (Loc 607 29 52) (Loc 608 29 53)) - (TRSingle "a")) - (Untyped - (Area (Loc 612 29 57) (Loc 613 29 58)) - (TRSingle "a"))) - , Untyped - (Area (Loc 606 29 51) (Loc 623 29 68)) - (TRArr - (Untyped - (Area (Loc 616 29 61) (Loc 617 29 62)) - (TRSingle "a")) - (Untyped - (Area (Loc 621 29 66) (Loc 622 29 67)) - (TRSingle "a"))) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (Instance + "Eq" + [ IsIn "Eq" [ TVar (TV 204274412242036023 Star) ] Nothing ] + (IsIn + "Eq" + [ TRecord + (fromList [ ( "todos" , TVar (TV 204274412242036023 Star) ) ]) + Nothing + (fromList []) + ] + Nothing) + (fromList + [ ( "==" + , ( Typed + ([] :=> + TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TRecord + (fromList [ ( "todos" , TVar (TV 259 Star) ) ]) + Nothing + (fromList [ ( "todos" , TVar (TV 259 Star) ) ]))) + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TRecord + (fromList [ ( "todos" , TVar (TV 259 Star) ) ]) + Nothing + (fromList [ ( "todos" , TVar (TV 259 Star) ) ]))) + (TCon (TC "Boolean" Star) "prelude"))) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (Assignment + "==" + (Typed + ([ IsIn "Eq" [ TVar (TV 259 Star) ] Nothing ] :=> + TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TRecord + (fromList [ ( "todos" , TVar (TV 259 Star) ) ]) + Nothing + (fromList []))) + (TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TRecord + (fromList [ ( "todos" , TVar (TV 259 Star) ) ]) + Nothing + (fromList []))) + (TCon (TC "Boolean" Star) "prelude"))) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (Abs + (Typed + ([ IsIn + "Eq" + [ TVar (TV 259 Star) ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + ] :=> + TRecord + (fromList [ ( "todos" , TVar (TV 259 Star) ) ]) + Nothing + (fromList [ ( "todos" , TVar (TV 259 Star) ) ])) + (Area (Loc 0 0 0) (Loc 0 0 0)) + "__$a__") + [ Typed + ([ IsIn + "Eq" + [ TVar (TV 259 Star) ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + ] :=> + TApp + (TApp + (TCon + (TC "(->)" (Kfun Star (Kfun Star Star))) + "prelude") + (TRecord + (fromList [ ( "todos" , TVar (TV 259 Star) ) ]) + Nothing + (fromList [ ( "todos" , TVar (TV 259 Star) ) ]))) + (TCon (TC "Boolean" Star) "prelude")) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (Abs + (Typed + ([ IsIn + "Eq" + [ TVar (TV 259 Star) ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + ] :=> + TRecord + (fromList [ ( "todos" , TVar (TV 259 Star) ) ]) + Nothing + (fromList [ ( "todos" , TVar (TV 259 Star) ) ])) + (Area (Loc 0 0 0) (Loc 0 0 0)) + "__$b__") + [ Typed + ([ IsIn + "Eq" + [ TVar (TV 259 Star) ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + ] :=> + TCon (TC "Boolean" Star) "prelude") + (Area (Loc 0 0 0) (Loc 0 0 0)) + (App + (Typed + ([ IsIn + "Eq" + [ TVar (TV 259 Star) ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + ] :=> + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun Star (Kfun Star Star))) + "prelude") + (TCon (TC "Boolean" Star) "prelude")) + (TCon (TC "Boolean" Star) "prelude")) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (App + (Typed + ([] :=> + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star (Kfun Star Star))) + "prelude") + (TCon + (TC "Boolean" Star) "prelude")) + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun Star Star))) + "prelude") + (TCon + (TC "Boolean" Star) + "prelude")) + (TCon + (TC "Boolean" Star) + "prelude"))) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (Var "&&" False)) + (Typed + ([ IsIn + "Eq" + [ TVar (TV 259 Star) ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + ] :=> + TCon (TC "Boolean" Star) "prelude") + (Area (Loc 0 0 0) (Loc 0 0 0)) + (App + (Typed + ([ IsIn + "Eq" + [ TVar (TV 259 Star) ] + (Just + (Area + (Loc 0 0 0) (Loc 0 0 0))) + ] :=> + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun Star Star))) + "prelude") + (TVar (TV 259 Star))) + (TCon + (TC "Boolean" Star) + "prelude")) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (App + (Typed + ([ IsIn + "Eq" + [ TVar (TV 259 Star) ] + Nothing + ] :=> + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TVar (TV 259 Star))) + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TVar + (TV 259 Star))) + (TCon + (TC "Boolean" Star) + "prelude"))) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (Var "==" False)) + (Typed + ([ IsIn + "Eq" + [ TVar (TV 259 Star) ] + (Just + (Area + (Loc 0 0 0) + (Loc 0 0 0))) + ] :=> + TVar (TV 259 Star)) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (Access + (Typed + ([] :=> + TRecord + (fromList + [ ( "todos" + , TVar + (TV + 259 + Star) + ) + ]) + Nothing + (fromList + [ ( "todos" + , TVar + (TV + 259 + Star) + ) + ])) + (Area + (Loc 0 0 0) + (Loc 0 0 0)) + (Var "__$a__" False)) + (Typed + ([] :=> + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TRecord + (fromList + [ ( "todos" + , TVar + (TV + 259 + Star) + ) + ]) + Nothing + (fromList + [ ( "todos" + , TVar + (TV + 259 + Star) + ) + ]))) + (TVar + (TV 259 Star))) + (Area + (Loc 0 0 0) + (Loc 0 0 0)) + (Var ".todos" False)))) + False)) + (Typed + ([ IsIn + "Eq" + [ TVar (TV 259 Star) ] + (Just + (Area + (Loc 0 0 0) (Loc 0 0 0))) + ] :=> + TVar (TV 259 Star)) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (Access + (Typed + ([] :=> + TRecord + (fromList + [ ( "todos" + , TVar (TV 259 Star) + ) + ]) + Nothing + (fromList + [ ( "todos" + , TVar (TV 259 Star) + ) + ])) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (Var "__$b__" False)) + (Typed + ([] :=> + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun + Star + Star))) + "prelude") + (TRecord + (fromList + [ ( "todos" + , TVar + (TV + 259 + Star) + ) + ]) + Nothing + (fromList + [ ( "todos" + , TVar + (TV + 259 + Star) + ) + ]))) + (TVar (TV 259 Star))) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (Var ".todos" False)))) + True)) + False)) + (Typed + ([ IsIn + "Eq" + [ TVar (TV 259 Star) ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + ] :=> + TCon (TC "Boolean" Star) "prelude") + (Area (Loc 0 0 0) (Loc 0 0 0)) + (LBool "true")) + True) ]) - ]))))) - , aliasexported = True - } - , Untyped - (Area (Loc 661 33 1) (Loc 714 33 54)) - Alias - { aliasname = "State" - , aliasparams = [] - , aliastype = - Untyped - (Area (Loc 675 33 15) (Loc 714 33 54)) - (TRRecord - (fromList - [ ( "input" - , ( Area (Loc 677 33 17) (Loc 685 33 25) - , Untyped - (Area (Loc 686 33 26) (Loc 692 33 32)) (TRSingle "String") - ) - ) - , ( "todos" - , ( Area (Loc 694 33 34) (Loc 702 33 42) - , Untyped - (Area (Loc 703 33 43) (Loc 712 33 52)) - (TRComp - "List" - [ Untyped - (Area (Loc 708 33 48) (Loc 712 33 52)) (TRSingle "Todo") - ]) - ) - ) - ]) - Nothing) - , aliasexported = False - } - , Untyped - (Area (Loc 123 11 1) (Loc 155 11 33)) - ADT - { adtname = "Maybe" - , adtparams = [ "a" ] - , adtconstructors = - [ Untyped - (Area (Loc 138 11 16) (Loc 145 11 23)) - (Constructor - "Just" - [ Untyped (Area (Loc 143 11 21) (Loc 144 11 22)) (TRSingle "a") ] - (TApp - (TApp - (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 205 Star))) - (TApp - (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 205 Star))))) - , Untyped - (Area (Loc 148 11 26) (Loc 155 11 33)) - (Constructor - "Nothing" - [] - (TApp - (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 206 Star)))) - ] - , adtType = - TApp - (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 590647783936702427 Star)) - , adtexported = False - } - , Untyped - (Area (Loc 221 16 1) (Loc 278 16 58)) - ADT - { adtname = "Wish" - , adtparams = [ "e" , "a" ] - , adtconstructors = - [ Untyped - (Area (Loc 244 16 24) (Loc 278 16 58)) - (Constructor - "Wish" - [ Untyped - (Area (Loc 250 16 30) (Loc 277 16 57)) - (TRArr - (Untyped - (Area (Loc 250 16 30) (Loc 257 16 37)) - (TRArr - (Untyped - (Area (Loc 250 16 30) (Loc 251 16 31)) (TRSingle "e")) - (Untyped - (Area (Loc 255 16 35) (Loc 257 16 37)) (TRSingle "{}")))) - (Untyped - (Area (Loc 263 16 43) (Loc 277 16 57)) - (TRArr - (Untyped - (Area (Loc 263 16 43) (Loc 270 16 50)) - (TRArr - (Untyped - (Area (Loc 263 16 43) (Loc 264 16 44)) - (TRSingle "a")) - (Untyped - (Area (Loc 268 16 48) (Loc 270 16 50)) - (TRSingle "{}")))) - (Untyped - (Area (Loc 275 16 55) (Loc 277 16 57)) (TRSingle "{}"))))) - ] - (TApp - (TApp - (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + ]))) + , Forall + [ Star ] + ([ IsIn "Eq" [ TGen 0 ] Nothing ] :=> + TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TRecord + (fromList [ ( "todos" , TGen 0 ) ]) Nothing (fromList []))) (TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") - (TApp - (TApp - (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 207 Star))) - (TCon (TC "{}" Star) "prelude"))) - (TApp + (TRecord + (fromList [ ( "todos" , TGen 0 ) ]) Nothing (fromList []))) + (TCon (TC "Boolean" Star) "prelude"))) + ) + ) + ])) + , Untyped + (Area (Loc 0 0 0) (Loc 0 0 0)) + (Instance + "Show" + [ IsIn "Show" [ TVar (TV 204274412242036023 Star) ] Nothing ] + (IsIn + "Show" + [ TRecord + (fromList [ ( "todos" , TVar (TV 204274412242036023 Star) ) ]) + Nothing + (fromList []) + ] + Nothing) + (fromList + [ ( "show" + , ( Typed + ([] :=> + TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TRecord + (fromList [ ( "todos" , TVar (TV 270 Star) ) ]) + Nothing + (fromList [ ( "todos" , TVar (TV 270 Star) ) ]))) + (TCon (TC "String" Star) "prelude")) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (Assignment + "show" + (Typed + ([ IsIn "Show" [ TVar (TV 270 Star) ] Nothing ] :=> + TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") - (TApp - (TApp - (TCon - (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 208 Star))) - (TCon (TC "{}" Star) "prelude"))) - (TCon (TC "{}" Star) "prelude")))) - (TApp - (TApp - (TCon (TC "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 207 Star))) - (TVar (TV 208 Star))))) - ] - , adtType = - TApp - (TApp - (TCon (TC "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 590643385890189583 Star))) - (TVar (TV 590647783936702427 Star)) - , adtexported = True - } - , Untyped - (Area (Loc 627 32 1) (Loc 660 32 34)) - ADT - { adtname = "Todo" - , adtparams = [] - , adtconstructors = - [ Untyped - (Area (Loc 639 32 13) (Loc 660 32 34)) - (Constructor - "Todo" - [ Untyped - (Area (Loc 644 32 18) (Loc 650 32 24)) (TRSingle "String") - , Untyped - (Area (Loc 652 32 26) (Loc 659 32 33)) (TRSingle "Boolean") - ] - (TApp - (TApp - (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") - (TCon (TC "String" Star) "prelude")) - (TApp + (TRecord + (fromList [ ( "todos" , TVar (TV 270 Star) ) ]) + Nothing + (fromList []))) + (TCon (TC "String" Star) "prelude")) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (Abs + (Typed + ([ IsIn + "Monoid" + [ TCon (TC "String" Star) "prelude" ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + , IsIn + "Semigroup" + [ TCon (TC "String" Star) "prelude" ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + , IsIn + "Show" + [ TVar (TV 270 Star) ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + ] :=> + TRecord + (fromList [ ( "todos" , TVar (TV 270 Star) ) ]) + Nothing + (fromList [ ( "todos" , TVar (TV 270 Star) ) ])) + (Area (Loc 0 0 0) (Loc 0 0 0)) + "__$a__") + [ Typed + ([] :=> TCon (TC "String" Star) "prelude") + (Area (Loc 0 0 0) (Loc 0 0 0)) + (TemplateString + [ Typed + ([] :=> TCon (TC "String" Star) "prelude") + (Area (Loc 0 0 0) (Loc 0 0 0)) + (LStr "{ ") + , Typed + ([ IsIn + "Monoid" + [ TCon (TC "String" Star) "prelude" ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + , IsIn + "Semigroup" + [ TCon (TC "String" Star) "prelude" ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + , IsIn + "Show" + [ TVar (TV 270 Star) ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + ] :=> + TCon (TC "String" Star) "prelude") + (Area (Loc 0 0 0) (Loc 0 0 0)) + (App + (Typed + ([ IsIn + "Monoid" + [ TCon (TC "String" Star) "prelude" ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + , IsIn + "Semigroup" + [ TCon (TC "String" Star) "prelude" ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + ] :=> + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun Star (Kfun Star Star))) + "prelude") + (TCon (TC "String" Star) "prelude")) + (TCon (TC "String" Star) "prelude")) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (App + (Typed + ([ IsIn + "Monoid" + [ TCon (TC "String" Star) "prelude" ] + Nothing + , IsIn + "Semigroup" + [ TCon (TC "String" Star) "prelude" ] + Nothing + ] :=> + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star (Kfun Star Star))) + "prelude") + (TCon + (TC "String" Star) "prelude")) + (TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun Star Star))) + "prelude") + (TCon + (TC "String" Star) + "prelude")) + (TCon + (TC "String" Star) "prelude"))) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (Var "mappend" False)) + (Typed + ([ IsIn + "Monoid" + [ TCon (TC "String" Star) "prelude" ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + , IsIn + "Semigroup" + [ TCon (TC "String" Star) "prelude" ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + ] :=> + TCon (TC "String" Star) "prelude") + (Area (Loc 0 0 0) (Loc 0 0 0)) + (LStr "todos: ")) + False)) + (Typed + ([ IsIn + "Monoid" + [ TCon (TC "String" Star) "prelude" ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + , IsIn + "Semigroup" + [ TCon (TC "String" Star) "prelude" ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + , IsIn + "Show" + [ TVar (TV 270 Star) ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + ] :=> + TCon (TC "String" Star) "prelude") + (Area (Loc 0 0 0) (Loc 0 0 0)) + (App + (Typed + ([ IsIn + "Show" [ TVar (TV 270 Star) ] Nothing + ] :=> + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star (Kfun Star Star))) + "prelude") + (TVar (TV 270 Star))) + (TCon (TC "String" Star) "prelude")) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (Var "show" False)) + (Typed + ([ IsIn + "Show" + [ TVar (TV 270 Star) ] + (Just (Area (Loc 0 0 0) (Loc 0 0 0))) + ] :=> + TVar (TV 270 Star)) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (Access + (Typed + ([] :=> + TRecord + (fromList + [ ( "todos" + , TVar (TV 270 Star) + ) + ]) + Nothing + (fromList + [ ( "todos" + , TVar (TV 270 Star) + ) + ])) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (Var "__$a__" False)) + (Typed + ([] :=> + TApp + (TApp + (TCon + (TC + "(->)" + (Kfun + Star + (Kfun Star Star))) + "prelude") + (TRecord + (fromList + [ ( "todos" + , TVar (TV 270 Star) + ) + ]) + Nothing + (fromList + [ ( "todos" + , TVar (TV 270 Star) + ) + ]))) + (TVar (TV 270 Star))) + (Area (Loc 0 0 0) (Loc 0 0 0)) + (Var ".todos" False)))) + True)) + True) + , Typed + ([] :=> TCon (TC "String" Star) "prelude") + (Area (Loc 0 0 0) (Loc 0 0 0)) + (LStr " }") + ]) + ]))) + , Forall + [ Star ] + ([ IsIn "Show" [ TGen 0 ] Nothing ] :=> + TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") - (TCon (TC "Boolean" Star) "prelude")) - (TCon (TC "Todo" Star) "Module.mad")))) - ] - , adtType = TCon (TC "Todo" Star) "Module.mad" - , adtexported = False - } - ] - , ainterfaces = [] - , ainstances = - [ Untyped + (TRecord + (fromList [ ( "todos" , TGen 0 ) ]) Nothing (fromList []))) + (TCon (TC "String" Star) "prelude")) + ) + ) + ])) + , Untyped (Area (Loc 0 0 0) (Loc 0 0 0)) (Instance "Eq" @@ -2219,42 +5591,42 @@ (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord (fromList - [ ( "input" , TVar (TV 59 Star) ) - , ( "todos" , TVar (TV 71 Star) ) + [ ( "input" , TVar (TV 102 Star) ) + , ( "todos" , TVar (TV 114 Star) ) ]) Nothing (fromList - [ ( "input" , TVar (TV 59 Star) ) - , ( "todos" , TVar (TV 71 Star) ) + [ ( "input" , TVar (TV 102 Star) ) + , ( "todos" , TVar (TV 114 Star) ) ]))) (TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord (fromList - [ ( "input" , TVar (TV 59 Star) ) - , ( "todos" , TVar (TV 71 Star) ) + [ ( "input" , TVar (TV 102 Star) ) + , ( "todos" , TVar (TV 114 Star) ) ]) Nothing (fromList - [ ( "input" , TVar (TV 59 Star) ) - , ( "todos" , TVar (TV 71 Star) ) + [ ( "input" , TVar (TV 102 Star) ) + , ( "todos" , TVar (TV 114 Star) ) ]))) (TCon (TC "Boolean" Star) "prelude"))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Assignment "==" (Typed - ([ IsIn "Eq" [ TVar (TV 59 Star) ] Nothing - , IsIn "Eq" [ TVar (TV 71 Star) ] Nothing + ([ IsIn "Eq" [ TVar (TV 102 Star) ] Nothing + , IsIn "Eq" [ TVar (TV 114 Star) ] Nothing ] :=> TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord (fromList - [ ( "input" , TVar (TV 59 Star) ) - , ( "todos" , TVar (TV 71 Star) ) + [ ( "input" , TVar (TV 102 Star) ) + , ( "todos" , TVar (TV 114 Star) ) ]) Nothing (fromList []))) @@ -2263,8 +5635,8 @@ (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord (fromList - [ ( "input" , TVar (TV 59 Star) ) - , ( "todos" , TVar (TV 71 Star) ) + [ ( "input" , TVar (TV 102 Star) ) + , ( "todos" , TVar (TV 114 Star) ) ]) Nothing (fromList []))) @@ -2274,33 +5646,33 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 59 Star) ] + [ TVar (TV 102 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Eq" - [ TVar (TV 71 Star) ] + [ TVar (TV 114 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TRecord (fromList - [ ( "input" , TVar (TV 59 Star) ) - , ( "todos" , TVar (TV 71 Star) ) + [ ( "input" , TVar (TV 102 Star) ) + , ( "todos" , TVar (TV 114 Star) ) ]) Nothing (fromList - [ ( "input" , TVar (TV 59 Star) ) - , ( "todos" , TVar (TV 71 Star) ) + [ ( "input" , TVar (TV 102 Star) ) + , ( "todos" , TVar (TV 114 Star) ) ])) (Area (Loc 0 0 0) (Loc 0 0 0)) "__$a__") [ Typed ([ IsIn "Eq" - [ TVar (TV 59 Star) ] + [ TVar (TV 102 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Eq" - [ TVar (TV 71 Star) ] + [ TVar (TV 114 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TApp @@ -2310,13 +5682,13 @@ "prelude") (TRecord (fromList - [ ( "input" , TVar (TV 59 Star) ) - , ( "todos" , TVar (TV 71 Star) ) + [ ( "input" , TVar (TV 102 Star) ) + , ( "todos" , TVar (TV 114 Star) ) ]) Nothing (fromList - [ ( "input" , TVar (TV 59 Star) ) - , ( "todos" , TVar (TV 71 Star) ) + [ ( "input" , TVar (TV 102 Star) ) + , ( "todos" , TVar (TV 114 Star) ) ]))) (TCon (TC "Boolean" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -2324,33 +5696,33 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 59 Star) ] + [ TVar (TV 102 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Eq" - [ TVar (TV 71 Star) ] + [ TVar (TV 114 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TRecord (fromList - [ ( "input" , TVar (TV 59 Star) ) - , ( "todos" , TVar (TV 71 Star) ) + [ ( "input" , TVar (TV 102 Star) ) + , ( "todos" , TVar (TV 114 Star) ) ]) Nothing (fromList - [ ( "input" , TVar (TV 59 Star) ) - , ( "todos" , TVar (TV 71 Star) ) + [ ( "input" , TVar (TV 102 Star) ) + , ( "todos" , TVar (TV 114 Star) ) ])) (Area (Loc 0 0 0) (Loc 0 0 0)) "__$b__") [ Typed ([ IsIn "Eq" - [ TVar (TV 59 Star) ] + [ TVar (TV 102 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Eq" - [ TVar (TV 71 Star) ] + [ TVar (TV 114 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "Boolean" Star) "prelude") @@ -2359,7 +5731,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 59 Star) ] + [ TVar (TV 102 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TApp @@ -2405,7 +5777,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 59 Star) ] + [ TVar (TV 102 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "Boolean" Star) "prelude") @@ -2414,7 +5786,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 59 Star) ] + [ TVar (TV 102 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) @@ -2428,7 +5800,7 @@ Star (Kfun Star Star))) "prelude") - (TVar (TV 59 Star))) + (TVar (TV 102 Star))) (TCon (TC "Boolean" Star) "prelude")) @@ -2437,7 +5809,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 59 Star) ] + [ TVar (TV 102 Star) ] Nothing ] :=> TApp @@ -2451,7 +5823,7 @@ Star Star))) "prelude") - (TVar (TV 59 Star))) + (TVar (TV 102 Star))) (TApp (TApp (TCon @@ -2464,7 +5836,7 @@ Star))) "prelude") (TVar - (TV 59 Star))) + (TV 102 Star))) (TCon (TC "Boolean" Star) "prelude"))) @@ -2473,13 +5845,13 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 59 Star) ] + [ TVar (TV 102 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 59 Star)) + TVar (TV 102 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) (Access (Typed @@ -2489,13 +5861,13 @@ [ ( "input" , TVar (TV - 59 + 102 Star) ) , ( "todos" , TVar (TV - 71 + 114 Star) ) ]) @@ -2504,13 +5876,13 @@ [ ( "input" , TVar (TV - 59 + 102 Star) ) , ( "todos" , TVar (TV - 71 + 114 Star) ) ])) @@ -2536,13 +5908,13 @@ [ ( "input" , TVar (TV - 59 + 102 Star) ) , ( "todos" , TVar (TV - 71 + 114 Star) ) ]) @@ -2551,18 +5923,18 @@ [ ( "input" , TVar (TV - 59 + 102 Star) ) , ( "todos" , TVar (TV - 71 + 114 Star) ) ]))) (TVar - (TV 59 Star))) + (TV 102 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -2571,12 +5943,12 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 59 Star) ] + [ TVar (TV 102 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 59 Star)) + TVar (TV 102 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) (Access (Typed @@ -2584,19 +5956,19 @@ TRecord (fromList [ ( "input" - , TVar (TV 59 Star) + , TVar (TV 102 Star) ) , ( "todos" - , TVar (TV 71 Star) + , TVar (TV 114 Star) ) ]) Nothing (fromList [ ( "input" - , TVar (TV 59 Star) + , TVar (TV 102 Star) ) , ( "todos" - , TVar (TV 71 Star) + , TVar (TV 114 Star) ) ])) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -2619,13 +5991,13 @@ [ ( "input" , TVar (TV - 59 + 102 Star) ) , ( "todos" , TVar (TV - 71 + 114 Star) ) ]) @@ -2634,17 +6006,17 @@ [ ( "input" , TVar (TV - 59 + 102 Star) ) , ( "todos" , TVar (TV - 71 + 114 Star) ) ]))) - (TVar (TV 59 Star))) + (TVar (TV 102 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var ".input" False)))) True)) @@ -2652,11 +6024,11 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 59 Star) ] + [ TVar (TV 102 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Eq" - [ TVar (TV 71 Star) ] + [ TVar (TV 114 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "Boolean" Star) "prelude") @@ -2665,7 +6037,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 71 Star) ] + [ TVar (TV 114 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TApp @@ -2716,7 +6088,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 71 Star) ] + [ TVar (TV 114 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) @@ -2728,7 +6100,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 71 Star) ] + [ TVar (TV 114 Star) ] (Just (Area (Loc 0 0 0) @@ -2745,7 +6117,7 @@ Star Star))) "prelude") - (TVar (TV 71 Star))) + (TVar (TV 114 Star))) (TCon (TC "Boolean" Star) "prelude")) @@ -2754,7 +6126,8 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 71 Star) + [ TVar + (TV 114 Star) ] Nothing ] :=> @@ -2771,7 +6144,8 @@ "prelude") (TVar (TV - 71 Star))) + 114 + Star))) (TApp (TApp (TCon @@ -2785,7 +6159,7 @@ "prelude") (TVar (TV - 71 + 114 Star))) (TCon (TC @@ -2799,14 +6173,15 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 71 Star) + [ TVar + (TV 114 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 71 Star)) + TVar (TV 114 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -2818,13 +6193,13 @@ [ ( "input" , TVar (TV - 59 + 102 Star) ) , ( "todos" , TVar (TV - 71 + 114 Star) ) ]) @@ -2833,13 +6208,13 @@ [ ( "input" , TVar (TV - 59 + 102 Star) ) , ( "todos" , TVar (TV - 71 + 114 Star) ) ])) @@ -2867,13 +6242,13 @@ [ ( "input" , TVar (TV - 59 + 102 Star) ) , ( "todos" , TVar (TV - 71 + 114 Star) ) ]) @@ -2882,19 +6257,19 @@ [ ( "input" , TVar (TV - 59 + 102 Star) ) , ( "todos" , TVar (TV - 71 + 114 Star) ) ]))) (TVar (TV - 71 + 114 Star))) (Area (Loc 0 0 0) @@ -2906,13 +6281,13 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 71 Star) ] + [ TVar (TV 114 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 71 Star)) + TVar (TV 114 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) (Access (Typed @@ -2922,13 +6297,13 @@ [ ( "input" , TVar (TV - 59 + 102 Star) ) , ( "todos" , TVar (TV - 71 + 114 Star) ) ]) @@ -2937,13 +6312,13 @@ [ ( "input" , TVar (TV - 59 + 102 Star) ) , ( "todos" , TVar (TV - 71 + 114 Star) ) ])) @@ -2969,13 +6344,13 @@ [ ( "input" , TVar (TV - 59 + 102 Star) ) , ( "todos" , TVar (TV - 71 + 114 Star) ) ]) @@ -2984,18 +6359,18 @@ [ ( "input" , TVar (TV - 59 + 102 Star) ) , ( "todos" , TVar (TV - 71 + 114 Star) ) ]))) (TVar - (TV 71 Star))) + (TV 114 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -3005,7 +6380,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 71 Star) ] + [ TVar (TV 114 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "Boolean" Star) "prelude") @@ -3059,49 +6434,49 @@ (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TApp (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star)))) + (TVar (TV 127 Star)))) (TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TApp (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star)))) + (TVar (TV 127 Star)))) (TCon (TC "Boolean" Star) "prelude"))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Assignment "==" (Typed - ([ IsIn "Eq" [ TVar (TV 84 Star) ] Nothing ] :=> + ([ IsIn "Eq" [ TVar (TV 127 Star) ] Nothing ] :=> TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TApp (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star)))) + (TVar (TV 127 Star)))) (TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TApp (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star)))) + (TVar (TV 127 Star)))) (TCon (TC "Boolean" Star) "prelude"))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Abs (Typed ([ IsIn "Eq" - [ TVar (TV 84 Star) ] + [ TVar (TV 127 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TApp (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star))) + (TVar (TV 127 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) "__$a__") [ Typed ([ IsIn "Eq" - [ TVar (TV 84 Star) ] + [ TVar (TV 127 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TApp @@ -3111,25 +6486,25 @@ "prelude") (TApp (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star)))) + (TVar (TV 127 Star)))) (TCon (TC "Boolean" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Abs (Typed ([ IsIn "Eq" - [ TVar (TV 84 Star) ] + [ TVar (TV 127 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TApp (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star))) + (TVar (TV 127 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) "__$b__") [ Typed ([ IsIn "Eq" - [ TVar (TV 84 Star) ] + [ TVar (TV 127 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "Boolean" Star) "prelude") @@ -3148,12 +6523,12 @@ (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star)))) + (TVar (TV 127 Star)))) (TApp (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star)))) + (TVar (TV 127 Star)))) (Area (Loc 0 0 0) (Loc 0 0 0)) (TupleConstructor [ Typed @@ -3162,7 +6537,7 @@ (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star))) + (TVar (TV 127 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var "__$a__" False) , Typed @@ -3171,14 +6546,14 @@ (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star))) + (TVar (TV 127 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var "__$b__" False) ])) [ Typed ([ IsIn "Eq" - [ TVar (TV 84 Star) ] + [ TVar (TV 127 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TApp @@ -3202,12 +6577,12 @@ "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star)))) + (TVar (TV 127 Star)))) (TApp (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star))))) + (TVar (TV 127 Star))))) (TCon (TC "Boolean" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Is @@ -3227,12 +6602,12 @@ "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star)))) + (TVar (TV 127 Star)))) (TApp (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star)))) + (TVar (TV 127 Star)))) (Area (Loc 0 0 0) (Loc 0 0 0)) (PTuple [ Typed @@ -3243,34 +6618,34 @@ "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star))) + (TVar (TV 127 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (PCon "Just" [ Typed ([ IsIn "Eq" - [ TVar (TV 84 Star) ] + [ TVar (TV 127 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Eq" - [ TVar (TV 84 Star) ] + [ TVar (TV 127 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Eq" - [ TVar (TV 84 Star) ] + [ TVar (TV 127 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 84 Star)) + TVar (TV 127 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) (PVar "a0") @@ -3283,34 +6658,34 @@ "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star))) + (TVar (TV 127 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (PCon "Just" [ Typed ([ IsIn "Eq" - [ TVar (TV 84 Star) ] + [ TVar (TV 127 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Eq" - [ TVar (TV 84 Star) ] + [ TVar (TV 127 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Eq" - [ TVar (TV 84 Star) ] + [ TVar (TV 127 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 84 Star)) + TVar (TV 127 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) (PVar "b0") @@ -3319,7 +6694,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 84 Star) ] + [ TVar (TV 127 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> @@ -3329,7 +6704,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 84 Star) ] + [ TVar (TV 127 Star) ] (Just (Area (Loc 0 0 0) @@ -3395,7 +6770,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 84 Star) ] + [ TVar (TV 127 Star) ] (Just (Area (Loc 0 0 0) @@ -3411,7 +6786,7 @@ ([ IsIn "Eq" [ TVar - (TV 84 Star) + (TV 127 Star) ] (Just (Area @@ -3432,7 +6807,7 @@ "prelude") (TVar (TV - 84 + 127 Star))) (TCon (TC @@ -3448,7 +6823,7 @@ "Eq" [ TVar (TV - 84 + 127 Star) ] Nothing @@ -3466,7 +6841,7 @@ "prelude") (TVar (TV - 84 + 127 Star))) (TApp (TApp @@ -3481,7 +6856,7 @@ "prelude") (TVar (TV - 84 + 127 Star))) (TCon (TC @@ -3497,7 +6872,7 @@ "Eq" [ TVar (TV - 84 + 127 Star) ] (Just @@ -3513,7 +6888,8 @@ ] :=> TVar (TV - 84 Star)) + 127 + Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -3523,7 +6899,7 @@ ([ IsIn "Eq" [ TVar - (TV 84 Star) + (TV 127 Star) ] (Just (Area @@ -3531,7 +6907,7 @@ (Loc 0 0 0))) ] :=> - TVar (TV 84 Star)) + TVar (TV 127 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -3541,7 +6917,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 84 Star) ] + [ TVar (TV 127 Star) ] (Just (Area (Loc 0 0 0) @@ -3575,12 +6951,12 @@ "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star)))) + (TVar (TV 127 Star)))) (TApp (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star))))) + (TVar (TV 127 Star))))) (TCon (TC "Boolean" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Is @@ -3600,12 +6976,12 @@ "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star)))) + (TVar (TV 127 Star)))) (TApp (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star)))) + (TVar (TV 127 Star)))) (Area (Loc 0 0 0) (Loc 0 0 0)) (PTuple [ Typed @@ -3616,7 +6992,7 @@ "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star))) + (TVar (TV 127 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (PCon "Nothing" []) , Typed @@ -3627,7 +7003,7 @@ "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star))) + (TVar (TV 127 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (PCon "Nothing" []) ])) @@ -3659,12 +7035,12 @@ "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star)))) + (TVar (TV 127 Star)))) (TApp (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star))))) + (TVar (TV 127 Star))))) (TCon (TC "Boolean" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Is @@ -3684,12 +7060,12 @@ "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star)))) + (TVar (TV 127 Star)))) (TApp (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 84 Star)))) + (TVar (TV 127 Star)))) (Area (Loc 0 0 0) (Loc 0 0 0)) PAny) (Typed @@ -3742,8 +7118,8 @@ (TApp (TApp (TCon (TC "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star)))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star)))) (TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") @@ -3751,15 +7127,15 @@ (TApp (TCon (TC "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star)))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star)))) (TCon (TC "Boolean" Star) "prelude"))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Assignment "==" (Typed - ([ IsIn "Eq" [ TVar (TV 108 Star) ] Nothing - , IsIn "Eq" [ TVar (TV 109 Star) ] Nothing + ([ IsIn "Eq" [ TVar (TV 151 Star) ] Nothing + , IsIn "Eq" [ TVar (TV 152 Star) ] Nothing ] :=> TApp (TApp @@ -3769,8 +7145,8 @@ (TCon (TC "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star)))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star)))) (TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") @@ -3779,8 +7155,8 @@ (TCon (TC "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star)))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star)))) (TCon (TC "Boolean" Star) "prelude"))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Abs @@ -3797,7 +7173,7 @@ (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 108 Star))) + (TVar (TV 151 Star))) (TCon (TC "{}" Star) "prelude"))) (TApp (TApp @@ -3811,7 +7187,7 @@ "(->)" (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 109 Star))) + (TVar (TV 152 Star))) (TCon (TC "{}" Star) "prelude"))) (TCon (TC "{}" Star) "prelude")) ] @@ -3822,8 +7198,8 @@ (TCon (TC "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) "__$a__") [ Typed @@ -3839,7 +7215,7 @@ (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 108 Star))) + (TVar (TV 151 Star))) (TCon (TC "{}" Star) "prelude"))) (TApp (TApp @@ -3853,7 +7229,7 @@ "(->)" (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 109 Star))) + (TVar (TV 152 Star))) (TCon (TC "{}" Star) "prelude"))) (TCon (TC "{}" Star) "prelude")) ] @@ -3869,8 +7245,8 @@ (TCon (TC "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star)))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star)))) (TCon (TC "Boolean" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Abs @@ -3889,7 +7265,7 @@ "(->)" (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 108 Star))) + (TVar (TV 151 Star))) (TCon (TC "{}" Star) "prelude"))) (TApp (TApp @@ -3906,7 +7282,7 @@ (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 109 Star))) + (TVar (TV 152 Star))) (TCon (TC "{}" Star) "prelude"))) (TCon (TC "{}" Star) "prelude")) ] @@ -3917,8 +7293,8 @@ (TCon (TC "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) "__$b__") [ Typed @@ -3937,7 +7313,7 @@ "(->)" (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 108 Star))) + (TVar (TV 151 Star))) (TCon (TC "{}" Star) "prelude"))) (TApp (TApp @@ -3954,7 +7330,7 @@ (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 109 Star))) + (TVar (TV 152 Star))) (TCon (TC "{}" Star) "prelude"))) (TCon (TC "{}" Star) "prelude")) ] @@ -3980,8 +7356,8 @@ (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star)))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star)))) (TApp (TApp (TCon @@ -3989,8 +7365,8 @@ "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star)))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star)))) (Area (Loc 0 0 0) (Loc 0 0 0)) (TupleConstructor [ Typed @@ -4003,8 +7379,8 @@ (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var "__$a__" False) , Typed @@ -4017,8 +7393,8 @@ (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var "__$b__" False) ])) @@ -4041,7 +7417,7 @@ Star (Kfun Star Star))) "prelude") - (TVar (TV 108 Star))) + (TVar (TV 151 Star))) (TCon (TC "{}" Star) "prelude"))) (TApp @@ -4062,7 +7438,7 @@ (Kfun Star Star))) "prelude") - (TVar (TV 109 Star))) + (TVar (TV 152 Star))) (TCon (TC "{}" Star) "prelude"))) @@ -4094,8 +7470,8 @@ Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star)))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star)))) (TApp (TApp (TCon @@ -4105,8 +7481,8 @@ Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star))))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star))))) (TCon (TC "Boolean" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Is @@ -4129,8 +7505,8 @@ Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star)))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star)))) (TApp (TApp (TCon @@ -4140,8 +7516,8 @@ Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star)))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star)))) (Area (Loc 0 0 0) (Loc 0 0 0)) (PTuple [ Typed @@ -4156,8 +7532,8 @@ (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (PCon "Wish" @@ -4188,7 +7564,7 @@ "prelude") (TVar (TV - 108 + 151 Star))) (TCon (TC @@ -4219,7 +7595,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC @@ -4262,7 +7638,7 @@ "prelude") (TVar (TV - 108 + 151 Star))) (TCon (TC @@ -4293,7 +7669,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC @@ -4336,7 +7712,7 @@ "prelude") (TVar (TV - 108 + 151 Star))) (TCon (TC @@ -4367,7 +7743,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC @@ -4409,7 +7785,7 @@ "prelude") (TVar (TV - 108 + 151 Star))) (TCon (TC @@ -4439,7 +7815,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC @@ -4465,8 +7841,8 @@ (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (PCon "Wish" @@ -4497,7 +7873,7 @@ "prelude") (TVar (TV - 108 + 151 Star))) (TCon (TC @@ -4528,7 +7904,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC @@ -4571,7 +7947,7 @@ "prelude") (TVar (TV - 108 + 151 Star))) (TCon (TC @@ -4602,7 +7978,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC @@ -4645,7 +8021,7 @@ "prelude") (TVar (TV - 108 + 151 Star))) (TCon (TC @@ -4676,7 +8052,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC @@ -4718,7 +8094,7 @@ "prelude") (TVar (TV - 108 + 151 Star))) (TCon (TC @@ -4748,7 +8124,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC @@ -4786,7 +8162,7 @@ Star Star))) "prelude") - (TVar (TV 108 Star))) + (TVar (TV 151 Star))) (TCon (TC "{}" Star) "prelude"))) @@ -4812,7 +8188,7 @@ Star))) "prelude") (TVar - (TV 109 Star))) + (TV 152 Star))) (TCon (TC "{}" Star) "prelude"))) @@ -4852,7 +8228,7 @@ "prelude") (TVar (TV - 108 Star))) + 151 Star))) (TCon (TC "{}" Star) "prelude"))) @@ -4880,7 +8256,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC "{}" Star) @@ -4978,7 +8354,7 @@ "prelude") (TVar (TV - 108 + 151 Star))) (TCon (TC @@ -5009,7 +8385,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC @@ -5058,7 +8434,7 @@ "prelude") (TVar (TV - 108 + 151 Star))) (TCon (TC @@ -5089,7 +8465,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC @@ -5143,7 +8519,7 @@ "prelude") (TVar (TV - 108 + 151 Star))) (TCon (TC @@ -5174,7 +8550,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC @@ -5222,7 +8598,7 @@ "prelude") (TVar (TV - 108 + 151 Star))) (TCon (TC @@ -5253,7 +8629,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC @@ -5303,7 +8679,7 @@ "prelude") (TVar (TV - 108 + 151 Star))) (TCon (TC @@ -5334,7 +8710,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC @@ -5381,7 +8757,7 @@ "prelude") (TVar (TV - 108 + 151 Star))) (TCon (TC @@ -5412,7 +8788,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC @@ -5460,7 +8836,7 @@ "prelude") (TVar (TV - 108 + 151 Star))) (TCon (TC @@ -5491,7 +8867,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC @@ -5539,7 +8915,7 @@ "prelude") (TVar (TV - 108 + 151 Star))) (TCon (TC @@ -5570,7 +8946,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC @@ -5614,7 +8990,7 @@ "prelude") (TVar (TV - 108 + 151 Star))) (TCon (TC @@ -5645,7 +9021,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC @@ -5688,7 +9064,7 @@ "prelude") (TVar (TV - 108 + 151 Star))) (TCon (TC @@ -5719,7 +9095,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC @@ -5764,7 +9140,7 @@ "prelude") (TVar (TV - 108 Star))) + 151 Star))) (TCon (TC "{}" Star) "prelude"))) @@ -5792,7 +9168,7 @@ "prelude") (TVar (TV - 109 + 152 Star))) (TCon (TC "{}" Star) @@ -5837,8 +9213,8 @@ Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star)))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star)))) (TApp (TApp (TCon @@ -5848,8 +9224,8 @@ Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star))))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star))))) (TCon (TC "Boolean" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Is @@ -5872,8 +9248,8 @@ Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star)))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star)))) (TApp (TApp (TCon @@ -5883,8 +9259,8 @@ Star (Kfun Star Star))) "Module.mad") - (TVar (TV 108 Star))) - (TVar (TV 109 Star)))) + (TVar (TV 151 Star))) + (TVar (TV 152 Star)))) (Area (Loc 0 0 0) (Loc 0 0 0)) PAny) (Typed @@ -6926,29 +10302,29 @@ (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord (fromList - [ ( "input" , TVar (TV 146 Star) ) - , ( "todos" , TVar (TV 154 Star) ) + [ ( "input" , TVar (TV 189 Star) ) + , ( "todos" , TVar (TV 197 Star) ) ]) Nothing (fromList - [ ( "input" , TVar (TV 146 Star) ) - , ( "todos" , TVar (TV 154 Star) ) + [ ( "input" , TVar (TV 189 Star) ) + , ( "todos" , TVar (TV 197 Star) ) ]))) (TCon (TC "String" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Assignment "show" (Typed - ([ IsIn "Show" [ TVar (TV 146 Star) ] Nothing - , IsIn "Show" [ TVar (TV 154 Star) ] Nothing + ([ IsIn "Show" [ TVar (TV 189 Star) ] Nothing + , IsIn "Show" [ TVar (TV 197 Star) ] Nothing ] :=> TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord (fromList - [ ( "input" , TVar (TV 146 Star) ) - , ( "todos" , TVar (TV 154 Star) ) + [ ( "input" , TVar (TV 189 Star) ) + , ( "todos" , TVar (TV 197 Star) ) ]) Nothing (fromList []))) @@ -6966,7 +10342,7 @@ (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Show" - [ TVar (TV 146 Star) ] + [ TVar (TV 189 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Monoid" @@ -6978,18 +10354,18 @@ (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Show" - [ TVar (TV 154 Star) ] + [ TVar (TV 197 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TRecord (fromList - [ ( "input" , TVar (TV 146 Star) ) - , ( "todos" , TVar (TV 154 Star) ) + [ ( "input" , TVar (TV 189 Star) ) + , ( "todos" , TVar (TV 197 Star) ) ]) Nothing (fromList - [ ( "input" , TVar (TV 146 Star) ) - , ( "todos" , TVar (TV 154 Star) ) + [ ( "input" , TVar (TV 189 Star) ) + , ( "todos" , TVar (TV 197 Star) ) ])) (Area (Loc 0 0 0) (Loc 0 0 0)) "__$a__") @@ -7012,7 +10388,7 @@ (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Show" - [ TVar (TV 146 Star) ] + [ TVar (TV 189 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "String" Star) "prelude") @@ -7100,7 +10476,7 @@ (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Show" - [ TVar (TV 146 Star) ] + [ TVar (TV 189 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "String" Star) "prelude") @@ -7108,7 +10484,7 @@ (App (Typed ([ IsIn - "Show" [ TVar (TV 146 Star) ] Nothing + "Show" [ TVar (TV 189 Star) ] Nothing ] :=> TApp (TApp @@ -7118,17 +10494,17 @@ (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 146 Star))) + (TVar (TV 189 Star))) (TCon (TC "String" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var "show" False)) (Typed ([ IsIn "Show" - [ TVar (TV 146 Star) ] + [ TVar (TV 189 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 146 Star)) + TVar (TV 189 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) (Access (Typed @@ -7136,19 +10512,19 @@ TRecord (fromList [ ( "input" - , TVar (TV 146 Star) + , TVar (TV 189 Star) ) , ( "todos" - , TVar (TV 154 Star) + , TVar (TV 197 Star) ) ]) Nothing (fromList [ ( "input" - , TVar (TV 146 Star) + , TVar (TV 189 Star) ) , ( "todos" - , TVar (TV 154 Star) + , TVar (TV 197 Star) ) ])) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -7167,13 +10543,13 @@ (TRecord (fromList [ ( "input" - , TVar (TV 146 Star) + , TVar (TV 189 Star) ) ]) (Just - (TVar (TV 148 Star))) + (TVar (TV 191 Star))) (fromList []))) - (TVar (TV 146 Star))) + (TVar (TV 189 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var ".input" False)))) True)) @@ -7193,7 +10569,7 @@ (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Show" - [ TVar (TV 154 Star) ] + [ TVar (TV 197 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "String" Star) "prelude") @@ -7281,7 +10657,7 @@ (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Show" - [ TVar (TV 154 Star) ] + [ TVar (TV 197 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "String" Star) "prelude") @@ -7289,7 +10665,7 @@ (App (Typed ([ IsIn - "Show" [ TVar (TV 154 Star) ] Nothing + "Show" [ TVar (TV 197 Star) ] Nothing ] :=> TApp (TApp @@ -7299,17 +10675,17 @@ (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 154 Star))) + (TVar (TV 197 Star))) (TCon (TC "String" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var "show" False)) (Typed ([ IsIn "Show" - [ TVar (TV 154 Star) ] + [ TVar (TV 197 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 154 Star)) + TVar (TV 197 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) (Access (Typed @@ -7317,19 +10693,19 @@ TRecord (fromList [ ( "input" - , TVar (TV 146 Star) + , TVar (TV 189 Star) ) , ( "todos" - , TVar (TV 154 Star) + , TVar (TV 197 Star) ) ]) Nothing (fromList [ ( "input" - , TVar (TV 146 Star) + , TVar (TV 189 Star) ) , ( "todos" - , TVar (TV 154 Star) + , TVar (TV 197 Star) ) ])) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -7348,22 +10724,22 @@ (TRecord (fromList [ ( "input" - , TVar (TV 146 Star) + , TVar (TV 189 Star) ) , ( "todos" - , TVar (TV 154 Star) + , TVar (TV 197 Star) ) ]) Nothing (fromList [ ( "input" - , TVar (TV 146 Star) + , TVar (TV 189 Star) ) , ( "todos" - , TVar (TV 154 Star) + , TVar (TV 197 Star) ) ]))) - (TVar (TV 154 Star))) + (TVar (TV 197 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var ".todos" False)))) True)) @@ -7411,37 +10787,37 @@ (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TApp (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 162 Star)))) + (TVar (TV 205 Star)))) (TCon (TC "String" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Assignment "show" (Typed - ([ IsIn "Show" [ TVar (TV 162 Star) ] Nothing ] :=> + ([ IsIn "Show" [ TVar (TV 205 Star) ] Nothing ] :=> TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TApp (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 162 Star)))) + (TVar (TV 205 Star)))) (TCon (TC "String" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Abs (Typed ([ IsIn "Show" - [ TVar (TV 162 Star) ] + [ TVar (TV 205 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TApp (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 162 Star))) + (TVar (TV 205 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) "__$a__") [ Typed ([ IsIn "Show" - [ TVar (TV 162 Star) ] + [ TVar (TV 205 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "String" Star) "prelude") @@ -7451,13 +10827,13 @@ ([] :=> TApp (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 162 Star))) + (TVar (TV 205 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var "__$a__" False)) [ Typed ([ IsIn "Show" - [ TVar (TV 162 Star) ] + [ TVar (TV 205 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TApp @@ -7469,7 +10845,7 @@ (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 162 Star)))) + (TVar (TV 205 Star)))) (TCon (TC "String" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Is @@ -7479,30 +10855,30 @@ (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 162 Star))) + (TVar (TV 205 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (PCon "Just" [ Typed ([ IsIn "Show" - [ TVar (TV 162 Star) ] + [ TVar (TV 205 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Show" - [ TVar (TV 162 Star) ] + [ TVar (TV 205 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 162 Star)) + TVar (TV 205 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) (PVar "a0") ])) (Typed ([ IsIn "Show" - [ TVar (TV 162 Star) ] + [ TVar (TV 205 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "String" Star) "prelude") @@ -7516,7 +10892,7 @@ , Typed ([ IsIn "Show" - [ TVar (TV 162 Star) ] + [ TVar (TV 205 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> @@ -7526,7 +10902,7 @@ (Typed ([ IsIn "Show" - [ TVar (TV 162 Star) ] + [ TVar (TV 205 Star) ] Nothing ] :=> TApp @@ -7538,7 +10914,7 @@ Star (Kfun Star Star))) "prelude") - (TVar (TV 162 Star))) + (TVar (TV 205 Star))) (TCon (TC "String" Star) "prelude")) @@ -7547,13 +10923,13 @@ (Typed ([ IsIn "Show" - [ TVar (TV 162 Star) ] + [ TVar (TV 205 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 162 Star)) + TVar (TV 205 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var "a0" False)) True) @@ -7574,7 +10950,7 @@ (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 162 Star)))) + (TVar (TV 205 Star)))) (TCon (TC "String" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Is @@ -7584,7 +10960,7 @@ (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 162 Star))) + (TVar (TV 205 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (PCon "Nothing" [])) (Typed @@ -7602,7 +10978,7 @@ (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 162 Star)))) + (TVar (TV 205 Star)))) (TCon (TC "String" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Is @@ -7612,7 +10988,7 @@ (TCon (TC "Maybe" (Kfun Star Star)) "Module.mad") - (TVar (TV 162 Star))) + (TVar (TV 205 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) PAny) (Typed @@ -7658,15 +11034,15 @@ (TApp (TApp (TCon (TC "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 176 Star))) - (TVar (TV 177 Star)))) + (TVar (TV 219 Star))) + (TVar (TV 220 Star)))) (TCon (TC "String" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Assignment "show" (Typed - ([ IsIn "Show" [ TVar (TV 176 Star) ] Nothing - , IsIn "Show" [ TVar (TV 177 Star) ] Nothing + ([ IsIn "Show" [ TVar (TV 219 Star) ] Nothing + , IsIn "Show" [ TVar (TV 220 Star) ] Nothing ] :=> TApp (TApp @@ -7676,8 +11052,8 @@ (TCon (TC "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 176 Star))) - (TVar (TV 177 Star)))) + (TVar (TV 219 Star))) + (TVar (TV 220 Star)))) (TCon (TC "String" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Abs @@ -7694,7 +11070,7 @@ (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 176 Star))) + (TVar (TV 219 Star))) (TCon (TC "{}" Star) "prelude"))) (TApp (TApp @@ -7708,7 +11084,7 @@ "(->)" (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 177 Star))) + (TVar (TV 220 Star))) (TCon (TC "{}" Star) "prelude"))) (TCon (TC "{}" Star) "prelude")) ] @@ -7719,8 +11095,8 @@ (TCon (TC "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 176 Star))) - (TVar (TV 177 Star))) + (TVar (TV 219 Star))) + (TVar (TV 220 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) "__$a__") [ Typed @@ -7736,7 +11112,7 @@ (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 176 Star))) + (TVar (TV 219 Star))) (TCon (TC "{}" Star) "prelude"))) (TApp (TApp @@ -7750,7 +11126,7 @@ "(->)" (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 177 Star))) + (TVar (TV 220 Star))) (TCon (TC "{}" Star) "prelude"))) (TCon (TC "{}" Star) "prelude")) ] @@ -7766,8 +11142,8 @@ (TCon (TC "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 176 Star))) - (TVar (TV 177 Star))) + (TVar (TV 219 Star))) + (TVar (TV 220 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var "__$a__" False)) [ Typed @@ -7786,7 +11162,7 @@ "(->)" (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 176 Star))) + (TVar (TV 219 Star))) (TCon (TC "{}" Star) "prelude"))) (TApp (TApp @@ -7803,7 +11179,7 @@ (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 177 Star))) + (TVar (TV 220 Star))) (TCon (TC "{}" Star) "prelude"))) (TCon (TC "{}" Star) "prelude")) ] @@ -7821,8 +11197,8 @@ "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 176 Star))) - (TVar (TV 177 Star)))) + (TVar (TV 219 Star))) + (TVar (TV 220 Star)))) (TCon (TC "String" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Is @@ -7835,8 +11211,8 @@ "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 176 Star))) - (TVar (TV 177 Star))) + (TVar (TV 219 Star))) + (TVar (TV 220 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (PCon "Wish" @@ -7863,7 +11239,7 @@ Star Star))) "prelude") - (TVar (TV 176 Star))) + (TVar (TV 219 Star))) (TCon (TC "{}" Star) "prelude"))) @@ -7889,7 +11265,7 @@ Star))) "prelude") (TVar - (TV 177 Star))) + (TV 220 Star))) (TCon (TC "{}" Star) "prelude"))) @@ -7920,7 +11296,7 @@ Star Star))) "prelude") - (TVar (TV 176 Star))) + (TVar (TV 219 Star))) (TCon (TC "{}" Star) "prelude"))) @@ -7946,7 +11322,7 @@ Star))) "prelude") (TVar - (TV 177 Star))) + (TV 220 Star))) (TCon (TC "{}" Star) "prelude"))) @@ -7973,7 +11349,7 @@ Star (Kfun Star Star))) "prelude") - (TVar (TV 176 Star))) + (TVar (TV 219 Star))) (TCon (TC "{}" Star) "prelude"))) (TApp @@ -7995,7 +11371,7 @@ (Kfun Star Star))) "prelude") - (TVar (TV 177 Star))) + (TVar (TV 220 Star))) (TCon (TC "{}" Star) "prelude"))) @@ -8022,7 +11398,7 @@ Star (Kfun Star Star))) "prelude") - (TVar (TV 176 Star))) + (TVar (TV 219 Star))) (TCon (TC "{}" Star) "prelude"))) (TApp (TApp @@ -8041,7 +11417,7 @@ Star (Kfun Star Star))) "prelude") - (TVar (TV 177 Star))) + (TVar (TV 220 Star))) (TCon (TC "{}" Star) "prelude"))) (TCon (TC "{}" Star) "prelude")) @@ -8079,7 +11455,7 @@ Star Star))) "prelude") - (TVar (TV 176 Star))) + (TVar (TV 219 Star))) (TCon (TC "{}" Star) "prelude"))) @@ -8105,7 +11481,7 @@ Star))) "prelude") (TVar - (TV 177 Star))) + (TV 220 Star))) (TCon (TC "{}" Star) "prelude"))) @@ -8145,7 +11521,7 @@ "prelude") (TVar (TV - 176 Star))) + 219 Star))) (TCon (TC "{}" Star) "prelude"))) @@ -8173,7 +11549,7 @@ "prelude") (TVar (TV - 177 + 220 Star))) (TCon (TC "{}" Star) @@ -8217,7 +11593,7 @@ "prelude") (TVar (TV - 176 + 219 Star))) (TCon (TC "{}" Star) @@ -8246,7 +11622,7 @@ "prelude") (TVar (TV - 177 + 220 Star))) (TCon (TC @@ -8288,7 +11664,7 @@ "prelude") (TVar (TV - 176 Star))) + 219 Star))) (TCon (TC "{}" Star) "prelude"))) @@ -8316,7 +11692,7 @@ "prelude") (TVar (TV - 177 + 220 Star))) (TCon (TC "{}" Star) @@ -8350,7 +11726,7 @@ Star Star))) "prelude") - (TVar (TV 176 Star))) + (TVar (TV 219 Star))) (TCon (TC "{}" Star) "prelude"))) @@ -8376,7 +11752,7 @@ Star))) "prelude") (TVar - (TV 177 Star))) + (TV 220 Star))) (TCon (TC "{}" Star) "prelude"))) @@ -8406,8 +11782,8 @@ "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 176 Star))) - (TVar (TV 177 Star)))) + (TVar (TV 219 Star))) + (TVar (TV 220 Star)))) (TCon (TC "String" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Is @@ -8420,8 +11796,8 @@ "Wish" (Kfun Star (Kfun Star Star))) "Module.mad") - (TVar (TV 176 Star))) - (TVar (TV 177 Star))) + (TVar (TV 219 Star))) + (TVar (TV 220 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) PAny) (Typed diff --git a/.snapshots/should_fail_to_infer_record_if_their_fields_do_not_match/golden b/.snapshots/should_fail_to_infer_record_if_their_fields_do_not_match/golden index 798e1c159..31723baf7 100644 --- a/.snapshots/should_fail_to_infer_record_if_their_fields_do_not_match/golden +++ b/.snapshots/should_fail_to_infer_record_if_their_fields_do_not_match/golden @@ -9,66 +9,231 @@ ] , aexps = [ Typed - ([] :=> TVar (TV (-1) Star)) + ([] :=> + TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "String" Star) "prelude"))) + (TCon (TC "{}" Star) "prelude")) (Area (Loc 123 11 1) (Loc 174 11 52)) (TypedExp (Typed - ([] :=> TVar (TV (-1) Star)) + ([] :=> + TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "String" Star) "prelude"))) + (TCon (TC "{}" Star) "prelude")) (Area (Loc 123 11 1) (Loc 174 11 52)) (Assignment "main" (Typed - ([] :=> TVar (TV (-1) Star)) + ([] :=> + TApp + (TApp + (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "String" Star) "prelude"))) + (TCon (TC "{}" Star) "prelude")) (Area (Loc 130 11 8) (Loc 174 11 52)) (Abs (Typed - ([] :=> TVar (TV (-1) Star)) + ([] :=> + TApp + (TCon (TC "List" (Kfun Star Star)) "prelude") + (TCon (TC "String" Star) "prelude")) (Area (Loc 173 11 51) (Loc 173 11 51)) "_") [ Typed - ([] :=> TVar (TV (-1) Star)) + ([] :=> TCon (TC "Boolean" Star) "prelude") (Area (Loc 138 11 16) (Loc 172 11 50)) (App (Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn + "Eq" + [ TRecord + (fromList + [ ( "x" , TCon (TC "Integer" Star) "prelude" ) + , ( "y" , TCon (TC "Integer" Star) "prelude" ) + ]) + Nothing + (fromList []) + ] + (Just (Area (Loc 153 11 31) (Loc 155 11 33))) + , IsIn "Number" [ TCon (TC "Integer" Star) "prelude" ] Nothing + , IsIn "Number" [ TCon (TC "Integer" Star) "prelude" ] Nothing + ] :=> + TApp + (TApp + (TCon + (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") + (TRecord + (fromList + [ ( "x" , TCon (TC "Integer" Star) "prelude" ) + , ( "y" , TCon (TC "Integer" Star) "prelude" ) + ]) + Nothing + (fromList []))) + (TCon (TC "Boolean" Star) "prelude")) (Area (Loc 138 11 16) (Loc 172 11 50)) (App (Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn + "Eq" + [ TRecord + (fromList + [ ( "x" + , TCon (TC "Integer" Star) "prelude" + ) + , ( "y" + , TCon (TC "Integer" Star) "prelude" + ) + ]) + Nothing + (fromList []) + ] + Nothing + ] :=> + TApp + (TApp + (TCon + (TC "(->)" (Kfun Star (Kfun Star Star))) + "prelude") + (TRecord + (fromList + [ ( "x" + , TCon (TC "Integer" Star) "prelude" + ) + , ( "y" + , TCon (TC "Integer" Star) "prelude" + ) + ]) + Nothing + (fromList []))) + (TApp + (TApp + (TCon + (TC "(->)" (Kfun Star (Kfun Star Star))) + "prelude") + (TRecord + (fromList + [ ( "x" + , TCon (TC "Integer" Star) "prelude" + ) + , ( "y" + , TCon (TC "Integer" Star) "prelude" + ) + ]) + Nothing + (fromList []))) + (TCon (TC "Boolean" Star) "prelude"))) (Area (Loc 153 11 31) (Loc 155 11 33)) (Var "==" False)) (Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn + "Eq" + [ TRecord + (fromList + [ ( "x" + , TCon (TC "Integer" Star) "prelude" + ) + , ( "y" + , TCon (TC "Integer" Star) "prelude" + ) + ]) + Nothing + (fromList []) + ] + (Just (Area (Loc 153 11 31) (Loc 155 11 33))) + , IsIn + "Number" + [ TCon (TC "Integer" Star) "prelude" ] + Nothing + , IsIn + "Number" + [ TCon (TC "Integer" Star) "prelude" ] + Nothing + ] :=> + TRecord + (fromList + [ ( "x" , TCon (TC "Integer" Star) "prelude" ) + , ( "y" , TCon (TC "Integer" Star) "prelude" ) + ]) + Nothing + (fromList [])) (Area (Loc 138 11 16) (Loc 152 11 30)) (Record [ Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn + "Number" + [ TCon (TC "Integer" Star) "prelude" ] + Nothing + ] :=> + TCon (TC "Integer" Star) "prelude") (Area (Loc 140 11 18) (Loc 144 11 22)) (Field ( "x" , Typed - ([] :=> TVar (TV 0 Star)) + ([ IsIn + "Number" + [ TCon (TC "Integer" Star) "prelude" ] + Nothing + ] :=> + TCon (TC "Integer" Star) "prelude") (Area (Loc 143 11 21) (Loc 144 11 22)) (LNum "3") )) , Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn + "Number" + [ TCon (TC "Integer" Star) "prelude" ] + Nothing + ] :=> + TCon (TC "Integer" Star) "prelude") (Area (Loc 146 11 24) (Loc 150 11 28)) (Field ( "y" , Typed - ([] :=> TVar (TV 0 Star)) + ([ IsIn + "Number" + [ TCon (TC "Integer" Star) "prelude" ] + Nothing + ] :=> + TCon (TC "Integer" Star) "prelude") (Area (Loc 149 11 27) (Loc 150 11 28)) (LNum "5") )) ])) False)) (Typed - ([] :=> TVar (TV (-1) Star)) + ([ IsIn + "Eq" + [ TRecord + (fromList + [ ( "x" , TCon (TC "Integer" Star) "prelude" ) + , ( "y" , TCon (TC "Integer" Star) "prelude" ) + ]) + Nothing + (fromList []) + ] + (Just (Area (Loc 153 11 31) (Loc 155 11 33))) + , IsIn "Number" [ TCon (TC "Integer" Star) "prelude" ] Nothing + , IsIn "Number" [ TCon (TC "Integer" Star) "prelude" ] Nothing + ] :=> + TRecord + (fromList + [ ( "name" , TCon (TC "String" Star) "prelude" ) ]) + Nothing + (fromList [])) (Area (Loc 156 11 34) (Loc 172 11 50)) (Record [ Typed - ([] :=> TVar (TV (-1) Star)) + ([] :=> TCon (TC "String" Star) "prelude") (Area (Loc 158 11 36) (Loc 170 11 48)) (Field ( "name" @@ -128,34 +293,34 @@ (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord - (fromList [ ( "name" , TVar (TV 11 Star) ) ]) + (fromList [ ( "name" , TVar (TV 18 Star) ) ]) Nothing - (fromList [ ( "name" , TVar (TV 11 Star) ) ]))) + (fromList [ ( "name" , TVar (TV 18 Star) ) ]))) (TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord - (fromList [ ( "name" , TVar (TV 11 Star) ) ]) + (fromList [ ( "name" , TVar (TV 18 Star) ) ]) Nothing - (fromList [ ( "name" , TVar (TV 11 Star) ) ]))) + (fromList [ ( "name" , TVar (TV 18 Star) ) ]))) (TCon (TC "Boolean" Star) "prelude"))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Assignment "==" (Typed - ([ IsIn "Eq" [ TVar (TV 11 Star) ] Nothing ] :=> + ([ IsIn "Eq" [ TVar (TV 18 Star) ] Nothing ] :=> TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord - (fromList [ ( "name" , TVar (TV 11 Star) ) ]) + (fromList [ ( "name" , TVar (TV 18 Star) ) ]) Nothing (fromList []))) (TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord - (fromList [ ( "name" , TVar (TV 11 Star) ) ]) + (fromList [ ( "name" , TVar (TV 18 Star) ) ]) Nothing (fromList []))) (TCon (TC "Boolean" Star) "prelude"))) @@ -164,19 +329,19 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 11 Star) ] + [ TVar (TV 18 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TRecord - (fromList [ ( "name" , TVar (TV 11 Star) ) ]) + (fromList [ ( "name" , TVar (TV 18 Star) ) ]) Nothing - (fromList [ ( "name" , TVar (TV 11 Star) ) ])) + (fromList [ ( "name" , TVar (TV 18 Star) ) ])) (Area (Loc 0 0 0) (Loc 0 0 0)) "__$a__") [ Typed ([ IsIn "Eq" - [ TVar (TV 11 Star) ] + [ TVar (TV 18 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TApp @@ -185,28 +350,28 @@ (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord - (fromList [ ( "name" , TVar (TV 11 Star) ) ]) + (fromList [ ( "name" , TVar (TV 18 Star) ) ]) Nothing - (fromList [ ( "name" , TVar (TV 11 Star) ) ]))) + (fromList [ ( "name" , TVar (TV 18 Star) ) ]))) (TCon (TC "Boolean" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Abs (Typed ([ IsIn "Eq" - [ TVar (TV 11 Star) ] + [ TVar (TV 18 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TRecord - (fromList [ ( "name" , TVar (TV 11 Star) ) ]) + (fromList [ ( "name" , TVar (TV 18 Star) ) ]) Nothing - (fromList [ ( "name" , TVar (TV 11 Star) ) ])) + (fromList [ ( "name" , TVar (TV 18 Star) ) ])) (Area (Loc 0 0 0) (Loc 0 0 0)) "__$b__") [ Typed ([ IsIn "Eq" - [ TVar (TV 11 Star) ] + [ TVar (TV 18 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "Boolean" Star) "prelude") @@ -215,7 +380,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 11 Star) ] + [ TVar (TV 18 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TApp @@ -261,7 +426,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 11 Star) ] + [ TVar (TV 18 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "Boolean" Star) "prelude") @@ -270,7 +435,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 11 Star) ] + [ TVar (TV 18 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) @@ -284,7 +449,7 @@ Star (Kfun Star Star))) "prelude") - (TVar (TV 11 Star))) + (TVar (TV 18 Star))) (TCon (TC "Boolean" Star) "prelude")) @@ -293,7 +458,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 11 Star) ] + [ TVar (TV 18 Star) ] Nothing ] :=> TApp @@ -307,7 +472,7 @@ Star Star))) "prelude") - (TVar (TV 11 Star))) + (TVar (TV 18 Star))) (TApp (TApp (TCon @@ -320,7 +485,7 @@ Star))) "prelude") (TVar - (TV 11 Star))) + (TV 18 Star))) (TCon (TC "Boolean" Star) "prelude"))) @@ -329,13 +494,13 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 11 Star) ] + [ TVar (TV 18 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 11 Star)) + TVar (TV 18 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) (Access (Typed @@ -345,7 +510,7 @@ [ ( "name" , TVar (TV - 11 + 18 Star) ) ]) @@ -354,7 +519,7 @@ [ ( "name" , TVar (TV - 11 + 18 Star) ) ])) @@ -380,7 +545,7 @@ [ ( "name" , TVar (TV - 11 + 18 Star) ) ]) @@ -389,12 +554,12 @@ [ ( "name" , TVar (TV - 11 + 18 Star) ) ]))) (TVar - (TV 11 Star))) + (TV 18 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -403,12 +568,12 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 11 Star) ] + [ TVar (TV 18 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 11 Star)) + TVar (TV 18 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) (Access (Typed @@ -416,13 +581,13 @@ TRecord (fromList [ ( "name" - , TVar (TV 11 Star) + , TVar (TV 18 Star) ) ]) Nothing (fromList [ ( "name" - , TVar (TV 11 Star) + , TVar (TV 18 Star) ) ])) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -445,7 +610,7 @@ [ ( "name" , TVar (TV - 11 + 18 Star) ) ]) @@ -454,11 +619,11 @@ [ ( "name" , TVar (TV - 11 + 18 Star) ) ]))) - (TVar (TV 11 Star))) + (TVar (TV 18 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var ".name" False)))) True)) @@ -466,7 +631,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 11 Star) ] + [ TVar (TV 18 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "Boolean" Star) "prelude") @@ -519,42 +684,42 @@ (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord (fromList - [ ( "x" , TVar (TV 26 Star) ) - , ( "y" , TVar (TV 38 Star) ) + [ ( "x" , TVar (TV 33 Star) ) + , ( "y" , TVar (TV 45 Star) ) ]) Nothing (fromList - [ ( "x" , TVar (TV 26 Star) ) - , ( "y" , TVar (TV 38 Star) ) + [ ( "x" , TVar (TV 33 Star) ) + , ( "y" , TVar (TV 45 Star) ) ]))) (TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord (fromList - [ ( "x" , TVar (TV 26 Star) ) - , ( "y" , TVar (TV 38 Star) ) + [ ( "x" , TVar (TV 33 Star) ) + , ( "y" , TVar (TV 45 Star) ) ]) Nothing (fromList - [ ( "x" , TVar (TV 26 Star) ) - , ( "y" , TVar (TV 38 Star) ) + [ ( "x" , TVar (TV 33 Star) ) + , ( "y" , TVar (TV 45 Star) ) ]))) (TCon (TC "Boolean" Star) "prelude"))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Assignment "==" (Typed - ([ IsIn "Eq" [ TVar (TV 26 Star) ] Nothing - , IsIn "Eq" [ TVar (TV 38 Star) ] Nothing + ([ IsIn "Eq" [ TVar (TV 33 Star) ] Nothing + , IsIn "Eq" [ TVar (TV 45 Star) ] Nothing ] :=> TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord (fromList - [ ( "x" , TVar (TV 26 Star) ) - , ( "y" , TVar (TV 38 Star) ) + [ ( "x" , TVar (TV 33 Star) ) + , ( "y" , TVar (TV 45 Star) ) ]) Nothing (fromList []))) @@ -563,8 +728,8 @@ (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord (fromList - [ ( "x" , TVar (TV 26 Star) ) - , ( "y" , TVar (TV 38 Star) ) + [ ( "x" , TVar (TV 33 Star) ) + , ( "y" , TVar (TV 45 Star) ) ]) Nothing (fromList []))) @@ -574,33 +739,33 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 26 Star) ] + [ TVar (TV 33 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Eq" - [ TVar (TV 38 Star) ] + [ TVar (TV 45 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TRecord (fromList - [ ( "x" , TVar (TV 26 Star) ) - , ( "y" , TVar (TV 38 Star) ) + [ ( "x" , TVar (TV 33 Star) ) + , ( "y" , TVar (TV 45 Star) ) ]) Nothing (fromList - [ ( "x" , TVar (TV 26 Star) ) - , ( "y" , TVar (TV 38 Star) ) + [ ( "x" , TVar (TV 33 Star) ) + , ( "y" , TVar (TV 45 Star) ) ])) (Area (Loc 0 0 0) (Loc 0 0 0)) "__$a__") [ Typed ([ IsIn "Eq" - [ TVar (TV 26 Star) ] + [ TVar (TV 33 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Eq" - [ TVar (TV 38 Star) ] + [ TVar (TV 45 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TApp @@ -610,13 +775,13 @@ "prelude") (TRecord (fromList - [ ( "x" , TVar (TV 26 Star) ) - , ( "y" , TVar (TV 38 Star) ) + [ ( "x" , TVar (TV 33 Star) ) + , ( "y" , TVar (TV 45 Star) ) ]) Nothing (fromList - [ ( "x" , TVar (TV 26 Star) ) - , ( "y" , TVar (TV 38 Star) ) + [ ( "x" , TVar (TV 33 Star) ) + , ( "y" , TVar (TV 45 Star) ) ]))) (TCon (TC "Boolean" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -624,33 +789,33 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 26 Star) ] + [ TVar (TV 33 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Eq" - [ TVar (TV 38 Star) ] + [ TVar (TV 45 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TRecord (fromList - [ ( "x" , TVar (TV 26 Star) ) - , ( "y" , TVar (TV 38 Star) ) + [ ( "x" , TVar (TV 33 Star) ) + , ( "y" , TVar (TV 45 Star) ) ]) Nothing (fromList - [ ( "x" , TVar (TV 26 Star) ) - , ( "y" , TVar (TV 38 Star) ) + [ ( "x" , TVar (TV 33 Star) ) + , ( "y" , TVar (TV 45 Star) ) ])) (Area (Loc 0 0 0) (Loc 0 0 0)) "__$b__") [ Typed ([ IsIn "Eq" - [ TVar (TV 26 Star) ] + [ TVar (TV 33 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Eq" - [ TVar (TV 38 Star) ] + [ TVar (TV 45 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "Boolean" Star) "prelude") @@ -659,7 +824,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 26 Star) ] + [ TVar (TV 33 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TApp @@ -705,7 +870,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 26 Star) ] + [ TVar (TV 33 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "Boolean" Star) "prelude") @@ -714,7 +879,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 26 Star) ] + [ TVar (TV 33 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) @@ -728,7 +893,7 @@ Star (Kfun Star Star))) "prelude") - (TVar (TV 26 Star))) + (TVar (TV 33 Star))) (TCon (TC "Boolean" Star) "prelude")) @@ -737,7 +902,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 26 Star) ] + [ TVar (TV 33 Star) ] Nothing ] :=> TApp @@ -751,7 +916,7 @@ Star Star))) "prelude") - (TVar (TV 26 Star))) + (TVar (TV 33 Star))) (TApp (TApp (TCon @@ -764,7 +929,7 @@ Star))) "prelude") (TVar - (TV 26 Star))) + (TV 33 Star))) (TCon (TC "Boolean" Star) "prelude"))) @@ -773,13 +938,13 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 26 Star) ] + [ TVar (TV 33 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 26 Star)) + TVar (TV 33 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) (Access (Typed @@ -789,13 +954,13 @@ [ ( "x" , TVar (TV - 26 + 33 Star) ) , ( "y" , TVar (TV - 38 + 45 Star) ) ]) @@ -804,13 +969,13 @@ [ ( "x" , TVar (TV - 26 + 33 Star) ) , ( "y" , TVar (TV - 38 + 45 Star) ) ])) @@ -836,13 +1001,13 @@ [ ( "x" , TVar (TV - 26 + 33 Star) ) , ( "y" , TVar (TV - 38 + 45 Star) ) ]) @@ -851,18 +1016,18 @@ [ ( "x" , TVar (TV - 26 + 33 Star) ) , ( "y" , TVar (TV - 38 + 45 Star) ) ]))) (TVar - (TV 26 Star))) + (TV 33 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -871,12 +1036,12 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 26 Star) ] + [ TVar (TV 33 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 26 Star)) + TVar (TV 33 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) (Access (Typed @@ -884,19 +1049,19 @@ TRecord (fromList [ ( "x" - , TVar (TV 26 Star) + , TVar (TV 33 Star) ) , ( "y" - , TVar (TV 38 Star) + , TVar (TV 45 Star) ) ]) Nothing (fromList [ ( "x" - , TVar (TV 26 Star) + , TVar (TV 33 Star) ) , ( "y" - , TVar (TV 38 Star) + , TVar (TV 45 Star) ) ])) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -919,13 +1084,13 @@ [ ( "x" , TVar (TV - 26 + 33 Star) ) , ( "y" , TVar (TV - 38 + 45 Star) ) ]) @@ -934,17 +1099,17 @@ [ ( "x" , TVar (TV - 26 + 33 Star) ) , ( "y" , TVar (TV - 38 + 45 Star) ) ]))) - (TVar (TV 26 Star))) + (TVar (TV 33 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var ".x" False)))) True)) @@ -952,11 +1117,11 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 26 Star) ] + [ TVar (TV 33 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Eq" - [ TVar (TV 38 Star) ] + [ TVar (TV 45 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "Boolean" Star) "prelude") @@ -965,7 +1130,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 38 Star) ] + [ TVar (TV 45 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TApp @@ -1016,7 +1181,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 38 Star) ] + [ TVar (TV 45 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) @@ -1028,7 +1193,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 38 Star) ] + [ TVar (TV 45 Star) ] (Just (Area (Loc 0 0 0) @@ -1045,7 +1210,7 @@ Star Star))) "prelude") - (TVar (TV 38 Star))) + (TVar (TV 45 Star))) (TCon (TC "Boolean" Star) "prelude")) @@ -1054,7 +1219,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 38 Star) + [ TVar (TV 45 Star) ] Nothing ] :=> @@ -1071,7 +1236,7 @@ "prelude") (TVar (TV - 38 Star))) + 45 Star))) (TApp (TApp (TCon @@ -1085,7 +1250,7 @@ "prelude") (TVar (TV - 38 + 45 Star))) (TCon (TC @@ -1099,14 +1264,14 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 38 Star) + [ TVar (TV 45 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 38 Star)) + TVar (TV 45 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -1118,13 +1283,13 @@ [ ( "x" , TVar (TV - 26 + 33 Star) ) , ( "y" , TVar (TV - 38 + 45 Star) ) ]) @@ -1133,13 +1298,13 @@ [ ( "x" , TVar (TV - 26 + 33 Star) ) , ( "y" , TVar (TV - 38 + 45 Star) ) ])) @@ -1167,13 +1332,13 @@ [ ( "x" , TVar (TV - 26 + 33 Star) ) , ( "y" , TVar (TV - 38 + 45 Star) ) ]) @@ -1182,19 +1347,19 @@ [ ( "x" , TVar (TV - 26 + 33 Star) ) , ( "y" , TVar (TV - 38 + 45 Star) ) ]))) (TVar (TV - 38 + 45 Star))) (Area (Loc 0 0 0) @@ -1205,13 +1370,13 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 38 Star) ] + [ TVar (TV 45 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 38 Star)) + TVar (TV 45 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) (Access (Typed @@ -1221,13 +1386,13 @@ [ ( "x" , TVar (TV - 26 + 33 Star) ) , ( "y" , TVar (TV - 38 + 45 Star) ) ]) @@ -1236,13 +1401,13 @@ [ ( "x" , TVar (TV - 26 + 33 Star) ) , ( "y" , TVar (TV - 38 + 45 Star) ) ])) @@ -1268,13 +1433,13 @@ [ ( "x" , TVar (TV - 26 + 33 Star) ) , ( "y" , TVar (TV - 38 + 45 Star) ) ]) @@ -1283,18 +1448,18 @@ [ ( "x" , TVar (TV - 26 + 33 Star) ) , ( "y" , TVar (TV - 38 + 45 Star) ) ]))) (TVar - (TV 38 Star))) + (TV 45 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -1304,7 +1469,7 @@ (Typed ([ IsIn "Eq" - [ TVar (TV 38 Star) ] + [ TVar (TV 45 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "Boolean" Star) "prelude") @@ -1358,20 +1523,20 @@ (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord - (fromList [ ( "name" , TVar (TV 51 Star) ) ]) + (fromList [ ( "name" , TVar (TV 58 Star) ) ]) Nothing - (fromList [ ( "name" , TVar (TV 51 Star) ) ]))) + (fromList [ ( "name" , TVar (TV 58 Star) ) ]))) (TCon (TC "String" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Assignment "show" (Typed - ([ IsIn "Show" [ TVar (TV 51 Star) ] Nothing ] :=> + ([ IsIn "Show" [ TVar (TV 58 Star) ] Nothing ] :=> TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord - (fromList [ ( "name" , TVar (TV 51 Star) ) ]) + (fromList [ ( "name" , TVar (TV 58 Star) ) ]) Nothing (fromList []))) (TCon (TC "String" Star) "prelude")) @@ -1388,13 +1553,13 @@ (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Show" - [ TVar (TV 51 Star) ] + [ TVar (TV 58 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TRecord - (fromList [ ( "name" , TVar (TV 51 Star) ) ]) + (fromList [ ( "name" , TVar (TV 58 Star) ) ]) Nothing - (fromList [ ( "name" , TVar (TV 51 Star) ) ])) + (fromList [ ( "name" , TVar (TV 58 Star) ) ])) (Area (Loc 0 0 0) (Loc 0 0 0)) "__$a__") [ Typed @@ -1416,7 +1581,7 @@ (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Show" - [ TVar (TV 51 Star) ] + [ TVar (TV 58 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "String" Star) "prelude") @@ -1504,7 +1669,7 @@ (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Show" - [ TVar (TV 51 Star) ] + [ TVar (TV 58 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "String" Star) "prelude") @@ -1512,7 +1677,7 @@ (App (Typed ([ IsIn - "Show" [ TVar (TV 51 Star) ] Nothing + "Show" [ TVar (TV 58 Star) ] Nothing ] :=> TApp (TApp @@ -1522,17 +1687,17 @@ (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 51 Star))) + (TVar (TV 58 Star))) (TCon (TC "String" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var "show" False)) (Typed ([ IsIn "Show" - [ TVar (TV 51 Star) ] + [ TVar (TV 58 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 51 Star)) + TVar (TV 58 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) (Access (Typed @@ -1540,13 +1705,13 @@ TRecord (fromList [ ( "name" - , TVar (TV 51 Star) + , TVar (TV 58 Star) ) ]) Nothing (fromList [ ( "name" - , TVar (TV 51 Star) + , TVar (TV 58 Star) ) ])) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -1565,16 +1730,16 @@ (TRecord (fromList [ ( "name" - , TVar (TV 51 Star) + , TVar (TV 58 Star) ) ]) Nothing (fromList [ ( "name" - , TVar (TV 51 Star) + , TVar (TV 58 Star) ) ]))) - (TVar (TV 51 Star))) + (TVar (TV 58 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var ".name" False)))) True)) @@ -1624,29 +1789,29 @@ (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord (fromList - [ ( "x" , TVar (TV 62 Star) ) - , ( "y" , TVar (TV 70 Star) ) + [ ( "x" , TVar (TV 69 Star) ) + , ( "y" , TVar (TV 77 Star) ) ]) Nothing (fromList - [ ( "x" , TVar (TV 62 Star) ) - , ( "y" , TVar (TV 70 Star) ) + [ ( "x" , TVar (TV 69 Star) ) + , ( "y" , TVar (TV 77 Star) ) ]))) (TCon (TC "String" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Assignment "show" (Typed - ([ IsIn "Show" [ TVar (TV 62 Star) ] Nothing - , IsIn "Show" [ TVar (TV 70 Star) ] Nothing + ([ IsIn "Show" [ TVar (TV 69 Star) ] Nothing + , IsIn "Show" [ TVar (TV 77 Star) ] Nothing ] :=> TApp (TApp (TCon (TC "(->)" (Kfun Star (Kfun Star Star))) "prelude") (TRecord (fromList - [ ( "x" , TVar (TV 62 Star) ) - , ( "y" , TVar (TV 70 Star) ) + [ ( "x" , TVar (TV 69 Star) ) + , ( "y" , TVar (TV 77 Star) ) ]) Nothing (fromList []))) @@ -1664,7 +1829,7 @@ (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Show" - [ TVar (TV 62 Star) ] + [ TVar (TV 69 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Monoid" @@ -1676,18 +1841,18 @@ (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Show" - [ TVar (TV 70 Star) ] + [ TVar (TV 77 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TRecord (fromList - [ ( "x" , TVar (TV 62 Star) ) - , ( "y" , TVar (TV 70 Star) ) + [ ( "x" , TVar (TV 69 Star) ) + , ( "y" , TVar (TV 77 Star) ) ]) Nothing (fromList - [ ( "x" , TVar (TV 62 Star) ) - , ( "y" , TVar (TV 70 Star) ) + [ ( "x" , TVar (TV 69 Star) ) + , ( "y" , TVar (TV 77 Star) ) ])) (Area (Loc 0 0 0) (Loc 0 0 0)) "__$a__") @@ -1710,7 +1875,7 @@ (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Show" - [ TVar (TV 62 Star) ] + [ TVar (TV 69 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "String" Star) "prelude") @@ -1798,7 +1963,7 @@ (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Show" - [ TVar (TV 62 Star) ] + [ TVar (TV 69 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "String" Star) "prelude") @@ -1806,7 +1971,7 @@ (App (Typed ([ IsIn - "Show" [ TVar (TV 62 Star) ] Nothing + "Show" [ TVar (TV 69 Star) ] Nothing ] :=> TApp (TApp @@ -1816,17 +1981,17 @@ (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 62 Star))) + (TVar (TV 69 Star))) (TCon (TC "String" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var "show" False)) (Typed ([ IsIn "Show" - [ TVar (TV 62 Star) ] + [ TVar (TV 69 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 62 Star)) + TVar (TV 69 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) (Access (Typed @@ -1834,19 +1999,19 @@ TRecord (fromList [ ( "x" - , TVar (TV 62 Star) + , TVar (TV 69 Star) ) , ( "y" - , TVar (TV 70 Star) + , TVar (TV 77 Star) ) ]) Nothing (fromList [ ( "x" - , TVar (TV 62 Star) + , TVar (TV 69 Star) ) , ( "y" - , TVar (TV 70 Star) + , TVar (TV 77 Star) ) ])) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -1865,13 +2030,13 @@ (TRecord (fromList [ ( "x" - , TVar (TV 62 Star) + , TVar (TV 69 Star) ) ]) (Just - (TVar (TV 64 Star))) + (TVar (TV 71 Star))) (fromList []))) - (TVar (TV 62 Star))) + (TVar (TV 69 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var ".x" False)))) True)) @@ -1891,7 +2056,7 @@ (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Show" - [ TVar (TV 70 Star) ] + [ TVar (TV 77 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "String" Star) "prelude") @@ -1979,7 +2144,7 @@ (Just (Area (Loc 0 0 0) (Loc 0 0 0))) , IsIn "Show" - [ TVar (TV 70 Star) ] + [ TVar (TV 77 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> TCon (TC "String" Star) "prelude") @@ -1987,7 +2152,7 @@ (App (Typed ([ IsIn - "Show" [ TVar (TV 70 Star) ] Nothing + "Show" [ TVar (TV 77 Star) ] Nothing ] :=> TApp (TApp @@ -1997,17 +2162,17 @@ (Kfun Star (Kfun Star Star))) "prelude") - (TVar (TV 70 Star))) + (TVar (TV 77 Star))) (TCon (TC "String" Star) "prelude")) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var "show" False)) (Typed ([ IsIn "Show" - [ TVar (TV 70 Star) ] + [ TVar (TV 77 Star) ] (Just (Area (Loc 0 0 0) (Loc 0 0 0))) ] :=> - TVar (TV 70 Star)) + TVar (TV 77 Star)) (Area (Loc 0 0 0) (Loc 0 0 0)) (Access (Typed @@ -2015,19 +2180,19 @@ TRecord (fromList [ ( "x" - , TVar (TV 62 Star) + , TVar (TV 69 Star) ) , ( "y" - , TVar (TV 70 Star) + , TVar (TV 77 Star) ) ]) Nothing (fromList [ ( "x" - , TVar (TV 62 Star) + , TVar (TV 69 Star) ) , ( "y" - , TVar (TV 70 Star) + , TVar (TV 77 Star) ) ])) (Area (Loc 0 0 0) (Loc 0 0 0)) @@ -2046,22 +2211,22 @@ (TRecord (fromList [ ( "x" - , TVar (TV 62 Star) + , TVar (TV 69 Star) ) , ( "y" - , TVar (TV 70 Star) + , TVar (TV 77 Star) ) ]) Nothing (fromList [ ( "x" - , TVar (TV 62 Star) + , TVar (TV 69 Star) ) , ( "y" - , TVar (TV 70 Star) + , TVar (TV 77 Star) ) ]))) - (TVar (TV 70 Star))) + (TVar (TV 77 Star))) (Area (Loc 0 0 0) (Loc 0 0 0)) (Var ".y" False)))) True)) diff --git a/compiler/main/Infer/Exp.hs b/compiler/main/Infer/Exp.hs index b981afe08..f080c9d85 100644 --- a/compiler/main/Infer/Exp.hs +++ b/compiler/main/Infer/Exp.hs @@ -715,9 +715,8 @@ inferIf discardError options env (Can.Canonical area (Can.If cond truthy falsy)) let tfalsy' = apply (s3 `compose` s2 `compose` s1) tfalsy let ttruthy' = apply (s3 `compose` s2 `compose` s1) ttruthy - s4 <- catchError (contextualUnify env falsy tfalsy' ttruthy') flipUnificationError - -- s4 <- catchError (contextualUnify env falsy ttruthy tfalsy) flipUnificationError - s5 <- contextualUnify env cond tBool (apply s4 tcond) + s4 <- catchError (contextualUnify env falsy tfalsy' ttruthy') flipUnificationError + s5 <- contextualUnify env cond tBool (apply s4 tcond) let s = s5 `compose` s4 `compose` s3 `compose` s2 `compose` s1 let t = apply s ttruthy @@ -1018,7 +1017,14 @@ inferImplicitlyTyped discardError options isLet env exp@(Can.Canonical area _) = (s, ps, t, e) <- infer discardError options env' { envNamesInScope = M.keysSet (envVars env) } exp let env'' = apply s env' - s' <- contextualUnify env'' exp (apply s tv) t + s' <- catchError + (contextualUnify env'' exp (apply s tv) t) + (\err -> do + if discardError then do + return $ gentleUnify (apply s tv) t + else + throwError err + ) let s'' = s `compose` s' `compose` s envWithVarsExcluded = env'' { envVars = M.filterWithKey (\k _ -> fromMaybe "" (Can.getExpName exp) /= k) $ envVars env'' } @@ -1063,7 +1069,7 @@ inferImplicitlyTyped discardError options isLet env exp@(Can.Canonical area _) = -- scheme apply sFinal $ quantify gs ((rs' ++ mutPS) :=> t') - when (not isLet && not (null mutPS) && not (Slv.isNamedAbs e)) $ do + when (not isLet && not discardError && not (null mutPS) && not (Slv.isNamedAbs e)) $ do throwError $ CompilationError MutationRestriction (Context (envCurrentPath env) area) case Can.getExpName exp of @@ -1088,7 +1094,15 @@ inferExplicitlyTyped discardError options isLet env canExp@(Can.Canonical area ( (s, ps, t, e) <- infer discardError options env' { envNamesInScope = M.keysSet (envVars env) } exp psFull <- concat <$> mapM (gatherInstPreds env') ps - s'' <- catchError (contextualUnify env canExp t' (apply (s `compose` s) t)) (throwError . limitContextArea 2) + -- s'' <- catchError (contextualUnify env canExp t' (apply (s `compose` s) t)) (throwError . limitContextArea 2) + s'' <- catchError + (contextualUnify env canExp t' (apply (s `compose` s) t)) + (\err -> do + if discardError then do + return $ gentleUnify t' (apply (s `compose` s) t) + else + throwError (limitContextArea 2 err) + ) let s' = s `compose` s'' `compose` s'' let envWithVarsExcluded = @@ -1124,7 +1138,7 @@ inferExplicitlyTyped discardError options isLet env canExp@(Can.Canonical area ( ) ps - when (not isLet && not (null mutPS) && not (Slv.isNamedAbs e)) $ do + when (not isLet && not discardError && not (null mutPS) && not (Slv.isNamedAbs e)) $ do throwError $ CompilationError MutationRestriction (Context (envCurrentPath env) area) let qs'' = dedupePreds qs' diff --git a/compiler/main/Run/LanguageServer.hs b/compiler/main/Run/LanguageServer.hs index 55469c0d7..3e590742c 100644 --- a/compiler/main/Run/LanguageServer.hs +++ b/compiler/main/Run/LanguageServer.hs @@ -67,7 +67,7 @@ import Data.Maybe (isJust) import GHC.Base (when) import Language.LSP.VFS (virtualFileText) import qualified Infer.Env as SlvEnv -import Data.Char (isAlphaNum, isDigit) +import Data.Char (isAlphaNum, isDigit, isUpper) @@ -109,8 +109,8 @@ handlers state autocompletionState = mconcat let foundLine = take (col + 1) $ lines content !! line suggestions <- getAutocompletionSuggestions autocompletionState (Loc 0 (line + 1) (col + 1)) (uriToPath uri) content - -- https://hackage.haskell.org/package/lsp-types-2.3.0.0/docs/Language-LSP-Protocol-Types.html#t:CompletionItem - let completionItems = map (\(s, kind) -> CompletionItem (T.pack s) (Just kind) Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing) suggestions + -- https://github.com/haskell/lsp/blob/76b86d54040cfa6c8306433a29404fa6402a5f69/lsp-types/src/Language/LSP/Types/Completion.hs + let completionItems = map (\(s, typing, kind) -> CompletionItem (T.pack s) (Just kind) Nothing (Just $ T.pack typing) Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing) suggestions responder $ Right $ InR (CompletionList True (List completionItems)) sendNotification SWindowLogMessage $ LogMessageParams MtInfo (T.pack $ ppShow (computeAutocompletionKind (reverse foundLine))) @@ -135,7 +135,7 @@ handlers state autocompletionState = mconcat data AutocompletionKind = AutocompletingName String | AutocompletingRecordAccess String String - | AutocompletingDeepRecordAccess [String] + | AutocompletingNamespaceAccess String deriving(Eq, Show) @@ -156,9 +156,9 @@ computeAutocompletionKind reversedCurrentLine = '.' : afterDot -> let (recordName, rest') = readName afterDot in case rest' of - -- '.' : afterDot' -> - -- let (recordName', rest'') = readName afterDot' - -- in AutocompletingDeepRecordAccess [recordName', recordName, name] + _ | not (null recordName) && isUpper (head recordName) -> + AutocompletingNamespaceAccess recordName + _ -> AutocompletingRecordAccess recordName name @@ -224,6 +224,11 @@ prettyQt topLevel qt@(_ :=> t) | otherwise = let (r, _) = renderSchemesWithDiff False (Forall [] ([] :=> t)) (Forall [] ([] :=> t)) in r +prettyScheme :: Scheme -> String +prettyScheme sc = + let (r, _) = renderSchemesWithDiff False sc sc in r + + data Node = ExpNode Bool Slv.Exp | NameNode Bool (Slv.Solved String) @@ -403,8 +408,8 @@ findNodeAtLoc topLevel loc input@(Slv.Typed qt area exp) = findNodeAtLoc False loc lhs <|> findNodeAtLoc False loc exp Slv.Access rec field -> - Nothing - -- findNodeAtLoc False loc rec <|> findNodeAtLoc False loc field + -- Nothing + findNodeAtLoc False loc rec <|> findNodeAtLoc False loc field Slv.ArrayAccess arr index -> findNodeAtLoc False loc arr <|> findNodeAtLoc False loc index @@ -745,7 +750,7 @@ nodeToHoverInfo modulePath node = do <> "*" -getAutocompletionSuggestions :: State -> Loc -> FilePath -> String -> LspM () [(String, CompletionItemKind)] +getAutocompletionSuggestions :: State -> Loc -> FilePath -> String -> LspM () [(String, String, CompletionItemKind)] getAutocompletionSuggestions autocompletionState loc path moduleContent = do llvmOptions <- buildOptions TLLVM (llvmResult, _, _) <- liftIO $ runTask autocompletionState llvmOptions { optEntrypoint = path } Driver.Don'tPrune mempty mempty (completionSuggestionsTask loc path moduleContent) @@ -1169,7 +1174,7 @@ getLocalNames loc exp = case exp of [] -completionSuggestionsTask :: Loc -> FilePath -> String -> Rock.Task Query.Query [(String, CompletionItemKind)] +completionSuggestionsTask :: Loc -> FilePath -> String -> Rock.Task Query.Query [(String, String, CompletionItemKind)] completionSuggestionsTask loc@(Loc _ line col) modulePath moduleContent = do (typedAst, env) <- Rock.fetch $ Query.SolvedASTWithEnv modulePath @@ -1177,46 +1182,43 @@ completionSuggestionsTask loc@(Loc _ line col) modulePath moduleContent = do let autocompletionKind = computeAutocompletionKind (reverse foundLine) let topLevelExp = findTopLevelExp loc (Slv.aexps typedAst) - let localNames = Maybe.fromMaybe [] $ (getLocalNames loc) <$> topLevelExp - let namesInEnv = Map.keys $ SlvEnv.envVars env - let methodsInEnv = Map.keys $ SlvEnv.envMethods env + let localNames = map (\(n, t) -> (n, Forall [] ([] :=> t))) $ Maybe.fromMaybe [] $ (getLocalNames loc) <$> topLevelExp + let namesInEnv = Map.toList $ SlvEnv.envVars env + let methodsInEnv = Map.toList $ SlvEnv.envMethods env case autocompletionKind of + AutocompletingNamespaceAccess namespace -> + return + $ map (\(n, qt) -> (if '.' `List.elem` n then List.tail $ dropWhile (/= '.') n else n, prettyScheme qt, CiFunction)) + $ filter (List.isPrefixOf namespace . fst) namesInEnv + AutocompletingName _ -> - return $ map (, CiFunction) $ map fst localNames ++ namesInEnv ++ methodsInEnv + return + $ map (\(n, qt) -> (n, prettyScheme qt, CiFunction)) + $ localNames ++ namesInEnv ++ methodsInEnv AutocompletingRecordAccess recordName fieldName -> do let updatedLoc = Loc 0 line (col - length fieldName - 1) - -- case findNodeAtLoc updatedLoc topLevelExp of case findNodeInExps updatedLoc (Slv.aexps typedAst ++ Slv.getAllMethods typedAst) of Just (ExpNode _ (Slv.Typed (_ :=> TRecord fields _ extraFields) _ _)) -> - return $ map (, CiField) $ Map.keys $ fields <> extraFields - - f -> - case List.find (\(n, _) -> n == recordName) localNames of - Just (_, TRecord fields _ extraFields) -> - return $ map (, CiField) $ Map.keys $ fields <> extraFields + return + $ map (\(n, t) -> (n, prettyScheme (Forall [] ([] :=> t)), CiField)) + $ Map.toList $ fields <> extraFields - _ -> - return $ (show f, CiConstant) : (map (, CiFunction) $ map fst localNames ++ namesInEnv ++ methodsInEnv) + Just (NameNode _ (Slv.Typed (_ :=> TApp _ (TRecord fields _ extraFields)) _ _)) -> + return + $ map (\(n, t) -> (n, prettyScheme (Forall [] ([] :=> t)), CiField)) + $ Map.toList $ fields <> extraFields - AutocompletingDeepRecordAccess items -> - case items of - recordName : fieldName : _ -> + f -> case List.find (\(n, _) -> n == recordName) localNames of - Just (_, TRecord fields _ extraFields) -> - case Map.lookup fieldName (fields <> extraFields) of - Just (TRecord fields' _ extraFields') -> - return $ map (, CiField) $ Map.keys $ fields' <> extraFields' - - Nothing -> - return $ map (, CiFunction) $ map fst localNames ++ namesInEnv ++ methodsInEnv + Just (_, Forall _ (_ :=> TRecord fields _ extraFields)) -> + return + $ map (\(n, t) -> (n, prettyScheme (Forall [] ([] :=> t)), CiField)) + $ Map.toList + $ fields <> extraFields _ -> - return $ map (, CiFunction) $ map fst localNames ++ namesInEnv ++ methodsInEnv - - _ -> - return $ map (, CiFunction) $ map fst localNames ++ namesInEnv ++ methodsInEnv - + return $ (show f, "", CiConstant) : (map (\(n, qt) -> (n, prettyScheme qt, CiField)) $ localNames ++ namesInEnv ++ methodsInEnv) definitionLocationTask :: Loc -> FilePath -> Rock.Task Query.Query (Maybe (FilePath, Area))