Implement in Scheme the algorithm described below in the attached document.
;; c4-linearize head parents get-precedence-list suffix? [eq [get-name]]
;; -> (values precedence-list super-suffix-or-#f)
;;
;; Compute the precedence list for a specification.
;; head - prefix list to prepend (typically (list x) or '())
;; parents - list of totally-ordered parent chains (each chain is a list);
;; supports an arbitrary DAG for the local precedence order,
;; e.g. '((A B C)) for a single chain, or '((A B) (C A)) for a DAG.