Your data types do not have to correspond directly to the grammar rules. It is perfectly valid to have the Term nonterminal produce an Expr value. For example
data Expr
= ActOp Op Expr Expr
| QuotedWord String
| Word String
deriving Show
...
Expr : Expr "OR" Term { ActOp Or $1 $3 }
| Expr "AND" Term { ActOp And $1 $3 }
| Term { $1 } -- no need to wrap in a constructor
Term : '"' string '"' { QuotedWord $2 }
| string { Word $1 }
| '(' Expr ')' { $2 } -- no need to wrap in a constructor