Added required interfaces and structures. Includes basic Foldl implementation

Also includes tests for interface conformance, Foldl is currently untested for the `ftree` struct