module substitution-test
imports libstratego-lib
strategies

  main =
    test-suite(!"substitution-test",
	test1
    )

signature
  constructors
    Typed  : Exp * Type -> Exp
    Var    : String -> Exp
    Forall : String * Type -> Type
    TVar   : String -> Type

strategies

  test1 = 
    apply-test(!"test1"
	,substitute(TVar(id))
	,!([TVar("b")], [TVar("e")], Typed(Var("a"),Forall("b",TVar("b"))))
	,!Typed(Var("a"),Forall("b",TVar("e")))
	)
