uKanren_translator 将miniKanren( )转换为Haskell 解析语法 Prog -> Def* Goal Term -> Ident | '<' Ident : Term* '>' Def -> :: Ident Ident* = Goal Goal -> Disj | Fresh | Invoke Fresh -> '[' Ident+ ':' Goal ']' Invoke -> '{' Ident Term* '}' Disj -> Conj ('\/' Conj)* Conj -> Pat ('/\' Pat)* Pat -> Term '==='