func (m Maybe) AndThen(f func(interface{}) monad.Monad) monad.Monad {
	if asJust, ok := m.internal.(just); ok {
		return f(asJust.Val)
	}
	return m
}
AndThen provides the monadic implementation of AndThen
package maybe
import (
	"fmt"
	"github.com/asteris-llc/gofpher/monad"
)
type just struct {
	Val interface{}
}
type nothing struct{}
type Maybe struct {
	internal interface{}
}