Use a semantic type instead of generic Either.
Started working on parser.