t :: Algae.Free.Shallow.t | Algae.Free.Deep.t
deep :: (Algae.Free.Deep.t -> (any -> Algae.Free.Deep.t))
deep(Algae.Free.Deep.t) :: (any -> Algae.Free.Deep.t)
deep(Algae.Free.Deep.t, any) :: Algae.Free.Deep.t
shallow :: (any -> Algae.Free.Shallow.t)
shallow(any) :: Algae.Free.Shallow.t