           call.variable = ifn
         else
           call.variable.base = ifn
-      ifn = Value.unfoldSoak o, call, 'variable'
+      ifn = If.unfoldSoak o, call, 'variable'
     ifn
 
   # Compile a vanilla function call.

      ifn = new If new Existence(fst), snd, soak: yes
      return ifn
    null

  # Unfold a node's child if soak, then tuck the node under created `If`
  @unfoldSoak: (o, parent, name) ->
    return unless ifn = parent[name].unfoldSoak o
    parent[name] = ifn.body
    ifn.body     = new Value parent
    ifn

#### Comment



  unfoldSoak: -> @soakNode and this

  # Unfold a node's child if soak, then tuck the node under created `If`
  @unfoldSoak: (o, parent, name) ->
    return unless ifn = parent[name].unfoldSoak o
    parent[name] = ifn.body
    ifn.body     = new Value parent
    ifn

# Faux-Nodes
# ----------
# Faux-nodes are never created by the grammar, but are used during code
