Add effect checking for implicit constructors; add unit test