krzysztof-w
4/22/2015 - 12:53 PM

replace.exs

replaceTypes = fn replaceType ->
  fn
    [{type, line, name, args} | types], typesMap ->
      case typesMap[name] do
          nil   -> [{type, line, name, replaceType.(args,typesMap)} | replaceType.(types,typesMap)]
          type  -> [type | replaceType.(types,typesMap)]
      end
    [type | types], typesMap -> [type | replaceType.(types, typesMap)]
    [], _ -> []
  end
end