add Semantic.hs