+{-# OPTIONS_GHC -fno-warn-unused-do-bind #-}
+
module Lambda where
import Data.Text as T
rename (Lambda x t) = Lambda n (substitute x (Var n) t)
where n = rnm x
rnm v = if (v ++ "r") `isFreeIn` t then rnm (v ++ "r") else v ++ "r"
+rename _ = error "TODO vymyslet reprezentaci, kde pujde udelat fce, ktera bere jen Lambdy"
substitute :: VarName -> Term -> Term -> Term
substitute a b (Var x) = if x == a then b else Var x