annotate' (p :>: ps) ann
    | complete ann = ann
    | otherwise = annotate' ps $ execState (apply p) (ann { currentInfo = info p })
annotate' (p :>: ps) ann
    | complete ann = ann
    | otherwise = annotate' ps $ execState (apply p) (ann { currentInfo = info p })
annotate' (p :>: ps) ann
    | complete ann = ann
    | otherwise = annotate' ps $ execState (apply p) (ann { currentInfo = info p })