В первом приближении можно было бы считать, что подобное разграничение предоставляют Clojure + Scala, связанные в одном проекте
аналогично будет flow + js
имея кусок нетипизированного кода, его можно задекларировать типами отдельно (при этом тайпчекаться этот кусок кода не будет, типы возьмутся на веру) и заюзать в flow-коде