test acyclic and cyclic separately
separate type specific map from the dispatch function

because otherwise its not possible to clone "arguments"
thanks to legacy shit
rm clone.self()

broken by last commit and not worth maintaining for now anyway
Release 0.2.0