Represent goal as an ADT